zoukankan      html  css  js  c++  java
  • Codeforces Gym100814 B.Unlucky Teacher (ACM International Collegiate Programming Contest, Egyptian Collegiate Programming Contest (2015) Arab Academy for Science and Technology)

    今日份的训练题解,今天写出来的题没有昨天多,可能是因为有些事吧。。。

    这个题就是老师改卷子,忘带标准答案了,但是他改了一部分卷子,并且确定自己改的卷子没出错,他想从改过的卷子里把标准答案推出来。

    因为是选择题,答案就是A,B,C,D里的一个,如果A,B,C,都不对,那就是D对。如果不确定就是?,就是这样的题目。

    一开始写的忘记判断如果三个选项都不对,那么剩下的就是答案这个了。。。

    代码写的很丑,想不到简单的写法。。。

    代码:

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 #include<algorithm>
     5 using namespace std;
     6 const int N=200+10;
     7 struct node{
     8     char ans;
     9     char pd;
    10     char t[5];
    11 }s[N];
    12 char da[N];
    13 int main(){
    14     int t,n,m;
    15     scanf("%d",&t);
    16     while(t--){
    17         scanf("%d%d",&n,&m);
    18         memset(da,'?',sizeof(da));
    19         for(int i=0;i<n;i++){
    20             for(int j=0;j<4;j++){
    21                 if(j==0)s[i].t[j]='A';
    22                 if(j==1)s[i].t[j]='B';
    23                 if(j==2)s[i].t[j]='C';
    24                 if(j==3)s[i].t[j]='D';
    25             }
    26         }
    27         while(m--){
    28             for(int i=0;i<n;i++){
    29                 cin>>s[i].ans>>s[i].pd;
    30                 if(s[i].pd=='T'&&da[i]=='?')da[i]=s[i].ans;
    31                 if(s[i].pd=='F'&&s[i].ans=='A')s[i].t[0]='0';
    32                 if(s[i].pd=='F'&&s[i].ans=='B')s[i].t[1]='0';
    33                 if(s[i].pd=='F'&&s[i].ans=='C')s[i].t[2]='0';
    34                 if(s[i].pd=='F'&&s[i].ans=='D')s[i].t[3]='0';
    35             }
    36         }
    37         for(int i=0;i<n;i++){
    38             int ret=0;char qwe='0';
    39             for(int j=0;j<4;j++){
    40                 if(s[i].t[j]=='0')ret++;
    41                 if(s[i].t[j]!='0')qwe=s[i].t[j];
    42             }
    43             if(ret==3&&da[i]=='?')da[i]=qwe;
    44         }
    45         for(int i=0;i<n-1;i++)
    46         printf("%c ",da[i]);
    47         printf("%c
    ",da[n-1]);
    48     }
    49     return 0;
    50 }
  • 相关阅读:
    inline必须在定义、实现都标记
    循环数组优化队列
    游程编码的优化
    新密码
    I Could Have Danced All Night
    strtok源码 bitset 空间压缩
    XOR Swap
    补码
    临时邮箱
    linux中find批量删除空文件夹
  • 原文地址:https://www.cnblogs.com/ZERO-/p/8289972.html
Copyright © 2011-2022 走看看