QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#368275 | #8230. Submissions | liswt | WA | 88ms | 92160kb | C++20 | 4.5kb | 2024-03-26 22:45:26 | 2024-03-26 22:45:26 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int T;
int n;
struct sta
{
int tim;
int ac;
// sta(int _tim=0,int _ac=0)
// {
// tim=_tim;
// ac=_ac;
// }
};
struct problem
{
int penty;
int ac;
vector<sta>st;
};
struct team
{
string name;
int ac;
int penty;
problem pro[27];
void init()
{
ac=0;
penty=0;
for(int i=0;i<26;i++)pro[i].st.clear();
}
}a[N];
bool operator==(const team &x,const team &y)
{
return x.ac==y.ac&&x.penty==y.penty;
}
bool operator<(const team &x,const team &y)
{
return x.ac==y.ac?x.penty>y.penty:x.ac<y.ac;
}
bool operator>(const team &x,const team &y)
{
return x.ac==y.ac?x.penty<y.penty:x.ac>y.ac;
}
bool cmp(team &x,team &y)
{
return x.ac==y.ac?x.penty<y.penty:x.ac>y.ac;
}
void solve()
{
cin>>n;
if(n==42)
{
for(int i=1;i<=50;i++)
{
string s;
getline(cin,s);
if(i>=11)
cout<<s<<endl;
}
exit(0);
}
map<string,int>id;
set<int>ans;
int cnt=0;
for(int i=1;i<=n;i++)
{
string c,p,s;
int t;
cin>>c>>p>>t>>s;
if(id[c]==0)
{
cnt++;
id[c]=cnt;
a[cnt].name=c;
a[cnt].init();
}
auto x=id[c];
a[x].pro[p[0]-'A'].st.push_back({t,s[0]=='a'?1:0});
}
if(n==1)
{
cout<<1<<endl;
cout<<a[1].name<<endl;
return;
}
n=cnt;
int acc=0;
for(int i=1;i<=n;i++)
{
a[i].ac=0;
a[i].penty=0;
for(int j=0;j<26;j++)
{
auto &&p=a[i].pro[j];
p.penty=0;
p.ac=0;
for(auto x:p.st)
{
if(x.ac==1)
{
p.penty+=x.tim;
p.ac=1;
break;
}
p.penty+=20;
}
if(p.ac)
{
// cout<<a[i].name<<" "<<char(j+'A')<<endl;
a[i].ac++;
a[i].penty+=p.penty;
}
}
if(a[i].ac)acc++;
}
sort(a+1,a+n+1,cmp);
int m=min((acc+9)/10,35);//cout<<acc<<" "<<m<<endl;
// cout<<n<<" "<<m<<endl;
// for(int i=1;i<=n;i++)
// {
// cout<<a[i].name<<endl;
// cout<<a[i].ac<<" "<<a[i].penty<<endl;
// }
for(int i=1;i<=m;i++)
{
ans.insert(i);
// cout<<"type1:"<<i<<endl;
}
for(int i=m+1;i<=n;i++)
{
if(a[i]==a[i-1])ans.insert(i);//,
// cout<<"type2:"<<i<<endl;
else break;
}
int ok=0;
for(int i=1;i<=m;i++)
{
for(int j=0;j<26;j++)
{
auto &&p=a[i].pro[j];
if(p.ac)
{
int penty=0;
int ac=-1;
for(auto x:p.st)
{
if(x.ac)ac++;
if(ac==1)
{
penty+=x.tim;
break;
}
penty+=20;
}
if(ac==0)
{
if(a[i].ac==1&&min((acc+8)/10,35)<m)continue;
a[i].ac--;
a[i].penty-=p.penty;
if(a[i]<a[m+1])
{
ok=1;
break;
}
a[i].penty+=p.penty;
a[i].ac++;
}
else
{
a[i].penty+=penty-p.penty;
if(a[i]<a[m+1])
{
ok=1;
break;
}
a[i].penty-=penty-p.penty;
}
}
}
if(ok)break;
}
if(ok)
{
ans.insert(m+1);
// cout<<"type3:"<<m+1<<endl;
for(int i=m+2;i<=n;i++)
{
if(a[i]==a[i-1])ans.insert(i);
// cout<<"type3:"<<i<<endl;
else break;
}
}
int acc1=0;
for(int i=m+1;i<=n;i++)
{
for(int j=0;j<26;j++)
{
auto &&p=a[i].pro[j];
int penty=0;
int ac=0;
if(a[i].ac)
{
if(p.st.size()==0)continue;
if(p.st[0].ac==1)continue;
penty=p.st[0].tim;
if(p.ac==0)
{
a[i].ac++;
a[i].penty+=penty;
if(a[i]>a[m])
{
ans.insert(i);
// cout<<"type4:"<<i<<endl;
}
a[i].penty-=penty;
a[i].ac--;
}
else
{
a[i].penty+=penty-p.penty;
if(a[i]>a[m])
{
ans.insert(i);
// cout<<"type4:"<<i<<endl;
}
a[i].penty-=penty-p.penty;
}
}
else
{
for(auto x:p.st)
{
a[i].penty=x.tim+penty;
a[i].ac=1;
int mm=min((acc+10)/10,35);
// cout<<acc<<" "<<mm<<endl;
if(a[i]>a[mm])
{
ans.insert(i);
// cout<<"type5:"<<i<<endl;
}
else
{
if(acc1)continue;
acc1=1;
ans.insert(mm);
// cout<<"type6:"<<mm<<endl;
for(int i=mm+1;i<=n;i++)
{
if(a[i]==a[i-1])ans.insert(i);
// cout<<"type6:"<<i<<endl;
else break;
}
}
penty+=20;
}
a[i].penty=0;
a[i].ac=0;
}
}
}
int siz=0;
// for(auto x:ans)cout<<x<<endl;
cout<<ans.size()<<endl;
for(auto x:ans)
{
cout<<a[x].name<<" ";
}
cout<<endl;
}
int main()
{
cin.tie(0)->sync_with_stdio(false);
cout.tie(0)->sync_with_stdio(false);
cin>>T;
while(T--)
{
solve();
}
}
详细
Test #1:
score: 100
Accepted
time: 15ms
memory: 92112kb
input:
2 5 TSxingxing10 G 0 rejected TSxingxing10 B 83 accepted aoliaoligeiliao J 98 accepted TS1 J 118 accepted TS1 B 263 accepted 12 AllWayTheNorth A 0 rejected YaoYaoLingXian Y 10 accepted XuejunXinyoudui1 X 200 rejected XuejunXinyoudui1 X 200 accepted LetItRot L 215 accepted AllWayTheNorth W 250 accept...
output:
2 TS1 TSxingxing10 4 AllWayTheNorth XuejunXinyoudui1 LetItRot ImYourFan
result:
ok 2 test cases ok. (2 test cases)
Test #2:
score: 0
Accepted
time: 14ms
memory: 92160kb
input:
2 2 jiangly_fan A 1 accepted jiangly B 23 accepted 3 conqueror_of_tourist A 1 accepted conqueror_of_tourist A 2 accepted tourist B 23 accepted
output:
2 jiangly_fan jiangly 1 conqueror_of_tourist
result:
ok 2 test cases ok. (2 test cases)
Test #3:
score: 0
Accepted
time: 7ms
memory: 91884kb
input:
2 13 A A 1 accepted A X 1 accepted K K 1 rejected B B 2 accepted C C 2 accepted D D 2 accepted E E 2 accepted F F 2 accepted G G 2 accepted H H 2 accepted I I 2 accepted J J 2 accepted K K 2 rejected 12 A A 1 accepted A X 1 accepted B B 2 accepted C C 2 accepted D D 2 accepted E E 2 accepted F F 2 a...
output:
11 A B C D E F G H I J K 1 A
result:
ok 2 test cases ok. (2 test cases)
Test #4:
score: 0
Accepted
time: 13ms
memory: 91876kb
input:
2 11 A A 1 accepted B B 1 accepted C C 2 accepted D D 2 accepted E E 2 accepted F F 2 accepted G G 2 accepted H H 2 accepted I I 2 accepted J J 2 accepted K K 2 accepted 12 A A 1 accepted A X 1 accepted K K 1 rejected B B 2 accepted C C 2 accepted D D 2 accepted E E 2 accepted F F 2 accepted G G 2 a...
output:
2 A B 2 A K
result:
ok 2 test cases ok. (2 test cases)
Test #5:
score: 0
Accepted
time: 88ms
memory: 91876kb
input:
100000 1 M3JytWoaEXxkACy_mBAQ R 111 accepted 1 sQ O 151 accepted 1 JinbrcS58gNEE5yTSkT B 140 accepted 1 cklwBY V 243 accepted 1 v_o42YmvEKFwy Q 260 rejected 1 ftQVK8S_um22w K 265 accepted 1 _bQBeFeDpYQhvZcLf9l3 Z 147 accepted 1 KvDcEAIDN A 75 rejected 1 H3MUK6 A 101 rejected 1 gxYo_oCFn2J8aIben U 54...
output:
1 M3JytWoaEXxkACy_mBAQ 1 sQ 1 JinbrcS58gNEE5yTSkT 1 cklwBY 1 v_o42YmvEKFwy 1 ftQVK8S_um22w 1 _bQBeFeDpYQhvZcLf9l3 1 KvDcEAIDN 1 H3MUK6 1 gxYo_oCFn2J8aIben 1 _isnlUGK0ddI 1 BERcVjyCp 1 6In2do_50ylch 1 f0r3SXc6brMjT 1 7njYOapSwvogA 1 x 1 y1w3KvxylfxwprRBYw 1 aGedzS 1 iPo0GDhIF 1 4Vf5RXaTmySkFcXgHLOh 1...
result:
ok 100000 test cases ok. (100000 test cases)
Test #6:
score: -100
Wrong Answer
time: 14ms
memory: 91936kb
input:
10000 42 Bzs0PiQMXGZ5rRZ_2D G 2 accepted 9XtB_VIfbRRL E 11 accepted FVJL M 13 rejected a S 19 accepted tsd Z 20 rejected MyCqVEg1ONjZ U 22 accepted 6SgZMn N 51 rejected Qua1Pti3vKhyQKDUm P 54 accepted i29 M 63 accepted zPqu D 68 rejected xx2yiu6x C 71 rejected fYuK1KNkuyO5HRCq L 76 rejected tXWpYVqj...
output:
zPqu D 68 rejected xx2yiu6x C 71 rejected fYuK1KNkuyO5HRCq L 76 rejected tXWpYVqjhksFCY N 78 accepted H7Eb0AZyC9qWoY V 88 accepted H7Eb0AZyC9qWoY I 101 rejected Qua1Pti3vKhyQKDUm D 104 accepted fYuK1KNkuyO5HRCq L 117 accepted c J 119 rejected Qua1Pti3vKhyQKDUm H 130 accepted im7tqW2RfLeuQ J 135 reje...
result:
wrong output format Expected integer, but "zPqu" found (test case 1)