• 【算法笔记】B1059 C语言竞赛


    用map存排名,再定义一个数组存是否领过奖品。测试点2出错原因找了好久,发现是最后一种情况忘了把check[id]置1

    还是得细心啊

    code:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 const int maxn = 10010;
     4 map<int, int> id_list;
     5 int check[maxn] = {0};
     6 bool isPrime(int n){
     7     if(n <= 3) return n > 1;
     8     for (int i = 2; i <= sqrt(n); i++){
     9         if(n % i == 0) return false;
    10     }
    11     return true;
    12 }
    13 int main(){
    14     int n, id, k;
    15     scanf("%d", &n);
    16     for(int i = 0; i < n; i++){
    17         scanf("%d", &id);
    18         id_list[id] = i + 1;
    19     }
    20     cin>>k;
    21     for(int i = 0; i < k; i++){
    22         scanf("%d", &id);
    23         map<int, int>::iterator it = id_list.find(id);
    24         if(it == id_list.end()) printf("%04d: Are you kidding?
    ", id);
    25         else if(check[id] == 1) printf("%04d: Checked
    ", id);
    26         else if(it->second == 1){
    27             printf("%04d: Mystery Award
    ", id);
    28             check[id] = 1;
    29         }else if(isPrime(it->second)){
    30             printf("%04d: Minion
    ", id);
    31             check[id] = 1;
    32         }else{
    33             printf("%04d: Chocolate
    ", id);
    34             check[id] = 1;
    35         }
    36     }
    37     return 0;
    38 }
  • 相关阅读:
    打印机无法打印文件
    .Net com组件操作excel(不建议采用Com组件操作excel)
    Zebra
    Map遍历方式
    PageHelper原理
    MySQL8.0新特性
    算法_插入排序
    贝叶斯定理
    二叉树学习笔记
    Java校验时间段重叠
  • 原文地址:https://www.cnblogs.com/chunlinn/p/10842887.html
Copyright © 2020-2023  润新知