本题的题意是:给出n匹马,每匹马都有一个固定的速度,结果有胜平负三种。
代码如下:
#include <cstdio> #include <algorithm> using namespace std; int tian[1000]; int king[1000]; int win,lose; int n,i; int lt,lk,rt,rk; namespace IO { char ch; const int M = 0xcf; const int N = 0x30; int scan() { bool f = true; int sum=0; ch=getchar(); while(ch!=‘\n‘||f==true) { if(ch<=‘9‘&&ch>=‘0‘){sum=sum*10+(ch&M);f=false;} else if((ch==‘ ‘||ch==‘\n‘)&&!f)return sum; ch=getchar(); } return sum; } void print(int a) { char s[20]; int i=0; if(a<0){putchar(‘-‘);a=-a;} if(a==0)putchar(‘0‘); while(a){s[i]=a%10|N;a/=10;i++;}; while(i--){putchar(s[i]);} } } int main() { while(n=IO::scan()) { for(i=0;i<n;i++)tian[i]=IO::scan(); for(i=0;i<n;i++)king[i]=IO::scan(); sort(tian,tian+n); sort(king,king+n); win=lose=0; rk=rt=n-1; lt=lk=0; while(lt<=rt) { if(tian[rt] > king[rk]) { win++;rt--;rk--; } else if(tian[lt] > king[lk]) { win++;lt++;lk++; } else{ if(tian[lt] < king[rk]) { lose++; } lt++;rk--; } } IO::print(200*(win-lose)); putchar(‘\n‘); } return 0; }
这道题错了很多次,后来发现原来结果有负的情况,改了之后就好了。
时间: 2024-10-12 19:56:11