分值 : 20 难度 : 水题 思路 : 就普通的结构体操作 坑点 : %04d?
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
#include <iostream>using namespace std;typedef struct Node{ int self ; int rank ; int flag = 0 ; int exit = 0 ;}Nodes ;bool is_prime(int x){ if(x <2 ) return false ; if(x ==2) return true ; for(int i = 2 ; i< x/2 ; i++) if(x%i==0) return false ; return true ;}Nodes data[10001];int main() { int N ,K ; cin >> N ; for(int i = 0 ; i< N ; i++) { int temp ; cin >> temp ; data[temp].exit = 1 ; data[temp].self = temp; data[temp].rank = i +1 ; } cin >> K ; for(int i = 0 ; i< K ; i++) { int temp ; cin >> temp ; if(!data[temp].exit) { printf("%04d: Are you kidding?\n",temp) ; continue; } if(data[temp].flag) { printf("%04d: Checked\n",temp) ; continue; } if(data[temp].rank == 1 ) { printf("%04d: Mystery Award\n",temp) ; data[temp].flag =1 ; continue; } else if( is_prime( data[temp].rank) ) { printf("%04d: Minion\n",temp) ; data[temp].flag =1 ; continue; } else { printf("%04d: Chocolate\n",temp) ; data[temp].flag = 1; continue ; } }}