QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#710312#8230. SubmissionsheyuhaoTL 744ms18756kbC++206.6kb2024-11-04 19:24:272024-11-04 19:24:28

Judging History

你现在查看的是最新测评结果

  • [2024-11-04 19:24:28]
  • 评测
  • 测评结果:TL
  • 用时:744ms
  • 内存:18756kb
  • [2024-11-04 19:24:27]
  • 提交

answer

#pragma GCC optimize(3, "Ofast", "inline")
#include <iostream>
#include<map>
#include<vector>
 #include <bits/stdc++.h>
#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)
#define INF 0x3f3f3f3f
#define L_INF 0x7f3f3f3f3f3f3f3f
#define db cout << "debug\n";

using namespace std;
const int Mod = 998244353;
using ll = long long;
unordered_map<string,int> tname;
unordered_map<string,int> ans,ans1;
int pos,m,sum_team;
struct submission
{
    int num;
    string name;
    int time,pro;
    bool zt;
}sub[100010];

bool cmp(const submission& a, const submission& b) {
    return std::tie(a.name, a.pro, a.time, a.num) < std::tie(b.name, b.pro, b.time, b.num);
}


struct problem
{
    int num_sub=0,sum_time=0,less_time=0;
    bool flag=false;
    int index;
};

struct team
{
    string name;
    int guo,fa;
    // int start,end;
    vector<problem> pro;
}tea[100010];

bool cmp1(pair<pair<int,int>,string> a,pair<pair<int,int>,string> b)
{
    if(a.first.first!=b.first.first)
        return a.first.first>b.first.first;
    return a.first.second<b.first.second;
}

void solve()
{
    ans.clear();
    ans1.clear();
  	int m;
  	cin>>m;
    tname.clear();
    sum_team=0;
	for(int i=1;i<=m;i++)
	{
		sub[i].num=i;
		string c,p,s;
		int t;
		cin>>c>>p>>t>>s;
		sub[i].name=c;
		sub[i].pro=p[0]-'A';
		sub[i].time=t;
		if(s=="accepted")
			sub[i].zt=true;
		else
			sub[i].zt=false;
	}
    if(m==1)
    {
        cout<<"1\n";
        cout<<sub[1].name<<"\n";
        return;
    }
	sort(sub+1,sub+1+m,cmp);
    pos=1;
	while(pos<=m)
	{
		string name=sub[pos].name; //当前队名
        tname[name]=++sum_team;
		bool flag=false; //是否过题
		int guo=0,fa=0; //过题数和罚时
        tea[sum_team].name=name;
        tea[sum_team].pro.clear();
		while(sub[pos].name==name&&pos<=m)
		{
            problem x;
            x.index=sub[pos].pro;
            x.less_time=sub[pos].time;
			int pro=sub[pos].pro; //当前题目
			bool flag1=false;  //是否过题
			int ti=0; //罚时
			// cout<<name<<" "<<pro<<" "<<mint<<"\n";
			while(sub[pos].pro==pro&&sub[pos].name==name&&pos<=m)
			{
                if(!flag1)
                    x.num_sub++;
				if(sub[pos].zt&&flag1==false)
				{
					flag1=true;
					ti+=sub[pos].time;
				}
				else if(!flag1)
					ti+=20;
				pos++;
			}
            x.flag=flag1;
			if(flag1)
			{
				flag=true;
                x.sum_time=ti;
				guo++;
				fa+=ti;		
			}
            tea[sum_team].pro.push_back(x);
		}
        tea[sum_team].guo=guo;
        tea[sum_team].fa=fa;
	}
    int stdguo=0,stdfa=0;
    int stasum=0;
    {
        vector<pair<pair<int,int>,string>> all;
        for(int j=1;j<=sum_team;j++) 
            if(tea[j].guo>0)
                all.push_back({{tea[j].guo,tea[j].fa},tea[j].name});
        if(all.size())
        {
            sort(all.begin(),all.end(),cmp1);
            int ssum=all.size();
            stasum=ssum;
            // cout<<ssum<<"\n";
            int gold=min(35,(ssum+9)/10);
            int stguo=all[gold-1].first.first,stfa=all[gold-1].first.second;
            stdguo=stguo;
            stdfa=stfa;
            if(gold<all.size())
                stdguo=all[gold].first.first,stdfa=all[gold].first.second;
            for(auto c:all)
            {
                if(c.first.first>stguo||c.first.first==stguo&&c.first.second<=stfa)
                    ans[c.second]=1,ans1[c.second]=1;
            }
        }
    }
    bool flag6=false,flag7=false;
    if(stasum%10!=0)
        flag6=true;
    if(stasum%10!=1)
        flag7=true;
    for(int i=1;i<=m;i++)
    {
        pos=tname[sub[i].name];
        string name=sub[i].name;
        int index=sub[i].pro;
        int shun=sub[i].num;
        int l=i,r=i;
        if(sub[i].zt&&!ans1.count(name))
            continue;
        if(sub[i].zt==false&&ans.count(name)&&(flag6||tea[pos].guo>0))
            continue;
        while(l>0&&sub[l].name==name&&sub[l].pro==index)
            l--;
        while(r<=m&&sub[r].name==name&&sub[r].pro==index)
            r++;
        l++;
        r--;
        bool flag5=false;
        int xinti=0;
        for(int j=l;j<=r;j++)
        {
            bool zt=sub[j].zt;
            if(sub[j].num==shun)
                zt=1-zt;
            if(zt&&flag5==false)
            {
                flag5=true;
                xinti+=sub[j].time;
            }
            else if(!flag5)
            {
                xinti+=20;
            }
        }
        int xinguo=0,xinfa=0;
        for(auto c:tea[pos].pro)
        {
            if(c.index==index)
            {
                if(flag5)
                {
                    xinguo++;
                    xinfa+=xinti;
                }
            }
            else
            {
                if(c.flag)
                {
                    xinguo++;
                    xinfa+=c.sum_time;
                }
            }
        }
        // cout<<xinguo<<"\n";
        vector<pair<pair<int,int>,string>> all;
        for(int j=1;j<=sum_team;j++)
        {
            if(j==pos&&xinguo>0&&(xinguo>stdguo||xinguo==stdguo&&xinfa<=stdfa))
            {
                // cout<<i<<" 1 "<<xinguo<<" "<<xinfa<<" "<<name<<"\n";
                all.push_back({{xinguo,xinfa},name});
            }
            else if(j!=pos&&tea[j].guo>0&&(tea[j].guo>stdguo||tea[j].guo==stdguo&&tea[j].fa<=stdfa))
            {
                // cout<<i<<" 2 "<<tea[j].guo<<" "<<tea[j].fa<<" "<<tea[j].name<<"\n";
                all.push_back({{tea[j].guo,tea[j].fa},tea[j].name});
            }
        }
        if(all.size())
        {
            sort(all.begin(),all.end(),cmp1);
            int ssum=stasum;
            //   cout<<ssum<<"\n";
            if(flag6==false&&tea[pos].guo==0)
                ssum++;
            if(flag7==false&&xinguo==0)
                ssum--;
            int gold=min(35,(ssum+9)/10);
            if(gold)
            {
                int stguo=all[gold-1].first.first,stfa=all[gold-1].first.second;
                for(auto c:all)
                {
                    if(c.first.first>stguo||c.first.first==stguo&&c.first.second<=stfa)
                        ans[c.second]=1;
                }
            }
        }
    }
    cout<<ans.size()<<"\n";
    for(auto s:ans)
    {
        cout<<s.first<<" ";
    }
    cout<<"\n";
}
int main()
{
    IOS;
// freopen("in.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
    int t;
    t = 1;
    cin >> t;
    while (t--)
    {
        solve();
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 15340kb

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
TSxingxing10 TS1 
4
XuejunXinyoudui1 LetItRot ImYourFan AllWayTheNorth 

result:

ok 2 test cases ok. (2 test cases)

Test #2:

score: 0
Accepted
time: 0ms
memory: 15404kb

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 jiangly_fan 
1
conqueror_of_tourist 

result:

ok 2 test cases ok. (2 test cases)

Test #3:

score: 0
Accepted
time: 3ms
memory: 15344kb

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
J G F H B E K I D C A 
1
A 

result:

ok 2 test cases ok. (2 test cases)

Test #4:

score: 0
Accepted
time: 3ms
memory: 15568kb

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
B A 
2
K A 

result:

ok 2 test cases ok. (2 test cases)

Test #5:

score: 0
Accepted
time: 24ms
memory: 15644kb

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: 0
Accepted
time: 58ms
memory: 15364kb

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:

4
tsd xiLm0TUOF3T fYuK1KNkuyO5HRCq Qua1Pti3vKhyQKDUm 
2
JP t3 
2
77sgqpbTIr_Zt1 fhYPGC8W82NwJTQL 
2
pVWDEz 3BQ 
2
tg buCeoOotAkV8DaFD6 
1
UkXQ3iaNJ 
2
ALTqPt7JUSLrl vwfw 
1
QTEzV6tp 
3
wJlbqIU 4e1l0pO8eFjZwkDo 9cy_y_RNRwex8j7224hz 
2
6mbCu5zA eiuF7a_ 
1
xy6QBr8ECi
3
PezeyUurYoz7N1iGU _Yej1PrINtydmOu...

result:

ok 10000 test cases ok. (10000 test cases)

Test #7:

score: 0
Accepted
time: 58ms
memory: 15468kb

input:

10000
27
bhAGFVDBjp4_Tvo U 24 accepted
bhAGFVDBjp4_Tvo O 37 rejected
bhAGFVDBjp4_Tvo D 40 accepted
bhAGFVDBjp4_Tvo H 45 accepted
bhAGFVDBjp4_Tvo B 60 rejected
bhAGFVDBjp4_Tvo J 63 accepted
bhAGFVDBjp4_Tvo M 81 rejected
bhAGFVDBjp4_Tvo M 98 rejected
bhAGFVDBjp4_Tvo D 103 rejected
bhAGFVDBjp4_Tvo Q 11...

output:

1
bhAGFVDBjp4_Tvo 
2
rl euenQ 
1
seny 
2
8zfFqdixKjh nLWe5xvBqfYkN 
1
VDeEtfbb 
1
9PAd7wtbCZMws6u 
1
Wsfc5qold4uacAjI1y
2
NX6GLK3Nz h68cyLwQ7drM__pSJub 
3
yOgwg sdf0IGct21OeEFJ U7S8zgJhR6 
1
acesvM9yT
1
2hQb 
2
3twK2MJI_ P5 
1
eGCz 
3
UXRu8i 39GgHUPovILESCd0 tLHWIEVr5i7vlKpvlP 
1
20gsbZ25SsYp8 
1
iL...

result:

ok 10000 test cases ok. (10000 test cases)

Test #8:

score: 0
Accepted
time: 58ms
memory: 15428kb

input:

10000
2
vVflLovvnhJEO U 3 accepted
Fg P 48 rejected
12
V9UJ5hEaWiwMq3lxwKw9 P 30 accepted
CKsw M 34 rejected
dCZBzKMxgQfgBDZO R 50 rejected
A1R2kF N 54 rejected
A1R2kF X 65 accepted
HEih51ut H 68 rejected
HEih51ut J 75 rejected
l0MCFXNXlH6T2wT I 163 accepted
A1R2kF B 180 accepted
dCZBzKMxgQfgBDZO A ...

output:

1
vVflLovvnhJEO 
2
V9UJ5hEaWiwMq3lxwKw9 A1R2kF 
4
fLUS3NYE 5sFcoMh 2 xgdxQ7t 
2
S25TIbMLU5FMV6ys4 2ra47EFC7LWzxTF2tSH 
2
uwm tczurXngUW 
3
Zh4tWi1QdYjTblw5 DNAv gWG1aLfP1Gk 
1
qN_OnmRhGksD 
1
pAJC7fTKPJjaxPP 
2
mElj5iV4wfu Jr9Sqekor 
1
_Z13N_OO
1
rn 
1
HhjFL6Rg 
1
2q 
5
tEVFWKnJOwmj0bdTK vdFavgJoOBT...

result:

ok 10000 test cases ok. (10000 test cases)

Test #9:

score: 0
Accepted
time: 57ms
memory: 15364kb

input:

10000
4
BUqwUvN2v7co K 45 accepted
fb4ykhGx9CBzWxLcGYjf F 96 rejected
3X39YaWp0LItH14Owx R 142 rejected
7JGP4qtBonRiKpsKW U 155 rejected
3
Z0cxqdpQ69NGV5wDoht X 92 rejected
1E0aicZDqPhh E 105 accepted
a3fvTkSrKXqQipNGs4h K 261 rejected
6
LR6PY6OjDoSaZpT W 33 accepted
Et8w1E52xfM27 Q 155 accepted
LR6...

output:

1
BUqwUvN2v7co 
2
Z0cxqdpQ69NGV5wDoht 1E0aicZDqPhh 
1
LR6PY6OjDoSaZpT 
3
YX 7f b 
4
o7VPp buFAkOkQ_F sgpEsfgf_Fd WqSH 
1
coTjuCSsnonAgjYkChE
2
GC0Lw1Di clGo2Z4AMe9Qp 
2
FCCHBTUTGJTbTjEb IrJ_n_Ym 
1
fkBpEQxhBl21ARSTVR 
1
fQzlJS9JEIS97gIIG7p4
6
togGKu7uZzgrRhln6iW pqyDmprb2RmUBafc76eR ljfPMl71hE otcG2...

result:

ok 10000 test cases ok. (10000 test cases)

Test #10:

score: 0
Accepted
time: 61ms
memory: 15420kb

input:

10000
7
dBv7DiT L 42 rejected
dBv7DiT P 123 accepted
7Bj2dZF6Gy7csrXYakI T 131 rejected
9KtuO O 190 accepted
BxACEk Q 285 rejected
BxACEk Q 291 rejected
HK0pq9qsGnlkgAQT L 296 accepted
3
NQgnW3CShrFJYkKdjagN G 53 rejected
ZwZCr O 261 accepted
ZwZCr P 270 accepted
6
mbGQ7wcZYr9leKBCsFN Z 4 rejected
7...

output:

2
9KtuO dBv7DiT 
1
ZwZCr 
2
4LUVnW93OFHOl6fJOmXK 7s1bgtS 
4
upCvWQnHRgRSQQ pz CZNz6k1QgLrHojbY _g2LouxyEI_BXaOYQWn 
3
q ungF4dKzJt290JMWNgeH t 
3
SuBp7xLMGCHgk 6mCVqSBpHVkrNZ 4FjAuM44Nzaz6Tc0 
1
xXqqS7r1OU 
1
YEHiJvhHR8OmUWz 
3
0WZFvefoPtNo BiasA1Md2ViU m 
1
MzQD
2
L501za_ktc MJJ4n2rC7YHRflGzEL 
1
k...

result:

ok 10000 test cases ok. (10000 test cases)

Test #11:

score: 0
Accepted
time: 8ms
memory: 16148kb

input:

7
110
10 A 0 accepted
0 A 100 accepted
1 A 100 accepted
2 A 100 accepted
3 A 100 accepted
4 A 100 accepted
5 A 100 accepted
6 A 100 accepted
7 A 100 accepted
8 A 100 accepted
9 A 100 accepted
0 B 100 accepted
1 B 100 accepted
2 B 100 accepted
3 B 100 accepted
4 B 100 accepted
5 B 100 accepted
6 B 10...

output:

11
10 0 2 9 8 4 7 6 3 5 1 
11
9 8 7 6 4 2 5 3 1 10 0 
11
9 8 7 6 4 2 5 3 1 10 0 
11
100 9 8 7 6 4 2 5 3 1 0 
12
100 9 8 7 6 4 2 5 3 1 10 0 
36
18 33 29 13 15 10 7 28 0 17 8 12 35 27 9 22 1 24 11 26 32 16 34 14 30 3 6 19 23 21 20 5 31 25 2 4 
35
33 31 29 28 27 32 26 24 22 23 21 20 19 18 16 15 34 14 1...

result:

ok 7 test cases ok. (7 test cases)

Test #12:

score: 0
Accepted
time: 98ms
memory: 15760kb

input:

1000
58
8VR4968BiWGrjt0 G 1 accepted
KfduBOJVYor3ixLgzUo Y 5 accepted
r9l9P_xyc7oagiZS0ZJ G 26 accepted
PL3OrMzXRJRVskByRHHl Y 38 accepted
7wL2M4T1PWyv9rJSdzGN N 47 rejected
Vu56KH6ZGwSm E 48 rejected
8VR4968BiWGrjt0 D 53 accepted
SI7h8yP C 57 rejected
aSVEsYSH9PJjsjSAyH N 61 accepted
D3UrdM8xI S 71...

output:

5
SI7h8yP mn0iyGyqWOakTAs1Qw umqh9D PL3OrMzXRJRVskByRHHl 8VR4968BiWGrjt0 
6
uxPAbOmdBcWg64Q52 EYdAeGI 6OSsIJ 3A4BJULiR9S f22a5ba_ze2qsm2_2k 9M 
25
wjew0c2d qeyRVrvGHqK nl0QcKuac m4fNASlCh aaM4iPkdQ6mLZGm Zsl io_4OkSzJAGEqNUfs6R Qo8l4lQKg OltMSo53IsdGRLoUb0 u FJhecJwM oLi8SUSfzmANlYBZxL huLWXo 6zU D6...

result:

ok 1000 test cases ok. (1000 test cases)

Test #13:

score: 0
Accepted
time: 354ms
memory: 16496kb

input:

100
974
qG R 0 accepted
k2K I 0 accepted
NelrCjQd_AHSw107 D 1 accepted
ybeH_JvdmCLMOGl9x K 1 accepted
h3 Q 2 accepted
9qOW O 2 accepted
v1IWHoW7Mkuce6qH Y 2 accepted
mlypVkK5Xl1KXw3o P 2 rejected
zs X 3 accepted
1Fpyq8oUYV_aNp I 3 rejected
e1bM8xUh E 3 rejected
myaSH0LCL4hD5BlAj F 4 rejected
IJETUS2...

output:

65
tHhnCuExgbOb sY6FEc5whjqMF s aBC22hKEI90RS jpgL7AOwwgwK4fC WXZbk3whbB_MWj5gppOj c 2tougTgqY91VXB3 FJ9Y b1rD1OQRc jp0GVUcZUKvitpzn9 yAkrjdmPe0qk mBzwDDISUnGJ03 dHvWryQd8SGEch 0NhoPE o_d5R9oBv ph3vkoSPOLM9EarA QGg ybeH_JvdmCLMOGl9x YF90UXdrzdhavh7pUDcA PGbK U3yYfH38sSb9TN NelrCjQd_AHSw107 DO0tQAc 2...

result:

ok 100 test cases ok. (100 test cases)

Test #14:

score: 0
Accepted
time: 744ms
memory: 18756kb

input:

10
5371
r0JLpp2hFx T 0 accepted
w19l89 X 0 rejected
PeEB Y 0 accepted
2MwVQe3 Y 0 accepted
CarjodD8k4E K 0 accepted
vNjq0LmY D 0 accepted
Bvi16IvVACG3uREuoO X 0 accepted
yMlDlaWPTluR1dk43nl6 A 0 rejected
4LBA3qILgaib4lrQ X 1 accepted
vRSpyKVAU7e I 1 rejected
627aFcGG4zh8 Z 1 rejected
FHwI U 1 accept...

output:

85
zm5DV8bvA5 yS0d5p8qP uoWF o5lOtaYsXo9Bi5yZWSz3 ny6 jqaKFR6rbaoxYWCeg ho1sZQLQFMygRJOSlB43 ekSHGLTsYgB6ak9Tm1uc dnPR74xK0r cRRk9 ZvfB0oWYrA9QI3bqI1 Yt_hc VEUvEZytpDQks Trcyq7Y SQHfF3xgjBtkER53p ReLcBXGOh IxS VDpt2586L4INEs 9Saa UhNeNpTgJpuTp4im DdOUBy fW_i aXGT cvBsYzk5yn X4r_g3 vTtpWBju nt0YXj m8...

result:

ok 10 test cases ok. (10 test cases)

Test #15:

score: -100
Time Limit Exceeded

input:

1
100000
OZeDY6m2v P 0 accepted
DolcP A 0 accepted
2Z9Yd M 0 rejected
Vjl F 0 accepted
SPetC8_ru4S3nXJkkD C 0 rejected
XhLC G 0 rejected
wZvhcns7t7EaOero E 0 accepted
HRqRKcO87 I 0 rejected
dwfT7D H 0 rejected
cxvYaN8zSMGpoa9Q9xv U 0 accepted
nvXlrCa1zbx8uokfd T 0 accepted
E_bbU5C9bgpD_wGo P 0 rejec...

output:


result: