看题解之前:
#include<bits/stdc++.h>
using namespace std;
int n,a[12]={0,0,4,4,4,4,4,4,4,4,16,4},tmp;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
int x;
cin>>x;
a[x]--;
tmp+=x;
}
int x=21-tmp;
// if(x<=0 && n<52)cout<<"VUCI\n";
tmp=0;
for(int i=0;i<=x;i++){
tmp+=a[i];//看看还剩多少
}
if(tmp<=(52-n)/2){
cout<<"DOSTA"<<endl;
}
else cout<<"VUCI"<<endl;
return 0;
}
于是:第十七个点WA,97分QWQAQ
看解析之后:
发现只有一个符号不一样:
解析源码:
#include <iostream>
using namespace std;
int s,a[12]={0,0,4,4,4,4,4,4,4,4,16,4};//每种价值的牌的个数
int main(){
int n,m,t,i;
cin>>n;
m=52-n;//剩下的牌数
while(n--)
{
cin>>t;
s+=t;//手中总和,累加
a[t]--;//用掉一张
}
int k=21-s,p=0;
for(i=0;i<=k;i++)//手中总和加上抽到的牌不大于21即可,可以的牌大于一半就可以抽牌(不考虑取等也避免了奇数除二的问题)
p+=a[i];
if(p>m/2) cout<<"VUCI";
else cout<<"DOSTA";
return 0;
}
根据他的改了一下
#include<bits/stdc++.h>
using namespace std;
int n,a[12]={0,0,4,4,4,4,4,4,4,4,16,4},tmp;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
int x;
cin>>x;
a[x]--;
tmp+=x;
}
int x=21-tmp;
// if(x<=0 && n<52)cout<<"VUCI\n";
tmp=0;
for(int i=0;i<=x;i++){
tmp+=a[i];//看看还剩多少
}
if(tmp>(52-n)/2){
cout<<"VUCI"<<endl;
}
else cout<<"DOSTA"<<endl;
return 0;
}
只调了一下if else 的位置,就AC了???
蒟蒻不解,求助大神
sto %%% 巨佬 %%% orz