UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#195421#3418. 鹅鸭杀XL301005ms1472kbC++1.3kb2023-10-18 19:01:372023-10-18 22:11:13

answer

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
int n;
struct re{
	string name;
	string id;
	string place;
}a[1020];
struct wy{
	string nam;
	bool vis;
}b[1020];
string s;
bool cmp(re x,re y){
	if(x.place==y.place)return x.id<y.id;
	return x.place<y.place;
}
signed main(){
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	cin>>n;
	int i=n+1; 
	for(int i=1;i<=n+1;i++){
		int f=0;
		getline(cin,s);
		for(int j=0;j<s.size();j++){
			if(s[j]==' '&&f==0){
				a[i-1].name=s.substr(0,j);
				f=1;
			}
			if(s[j]=='a'&&s[j+1]==' '){
				if(s[j+6]==',')a[i-1].id="duck";
				else a[i-1].id="goose";
			}
			if(s[j-1]=='a'&&s[j]=='t'&&s[j+1]==' '){
				a[i-1].place=s.substr(j+2);
			}
		}
	}
	for(int i=1;i<=n;i++){
		b[i].nam=a[i].name;
		b[i].vis=false;
	}
	sort(a+1,a+n+1,cmp);
	bool f=0;
	string t;
	for(int i=1;i<=n;i++){
		if(a[i].id=="duck"){
			f=1;
			t=a[i].place;
		}else{
			if(a[i].id=="goose"&&f==1&&t==a[i].place){
				for(int j=1;j<=n;j++){
					if(b[j].nam==a[i].name){
						b[j].vis=true;
						break;
					}
				}
			}else f=0;
		}
	}
	for(int i=1;i<=n;i++){
		cout<<b[i].nam<<" is ";
		if(b[i].vis==false)cout<<"alive"<<endl;
		else cout<<"dead"<<endl;
	}
	return 0;
}

详细

小提示:点击横条可展开更详细的信息

Test #1:

score: 10
Accepted
time: 0ms
memory: 1300kb

input:

1
DnONuKkfsK is a duck, it is at VxdjvTXugQrxHcBy

output:

DnONuKkfsK is alive

result:

ok single line: 'DnONuKkfsK is alive'

Test #2:

score: 10
Accepted
time: 0ms
memory: 1304kb

input:

1
h is a goose, it is at DgPHXhVJtkESkHmf

output:

h is alive

result:

ok single line: 'h is alive'

Test #3:

score: 10
Accepted
time: 0ms
memory: 1312kb

input:

2
HRiAYWN is a goose, it is at EL
dgwgYboiuaytmJOAv is a duck, it is at EL

output:

HRiAYWN is dead
dgwgYboiuaytmJOAv is alive

result:

ok 2 lines

Test #4:

score: 10
Accepted
time: 0ms
memory: 1312kb

input:

2
izNydjl is a goose, it is at qYWlAosa
EISnxurnHqHNKDD is a goose, it is at qYWlAosa

output:

izNydjl is alive
EISnxurnHqHNKDD is alive

result:

ok 2 lines

Test #5:

score: 10
Accepted
time: 1ms
memory: 1312kb

input:

10
NSWzSOl is a duck, it is at VCLAQReUMFYoH
owVUjFuAPuutSaKhLqh is a duck, it is at ZYPmZsegdxJOuB
...

output:

NSWzSOl is alive
owVUjFuAPuutSaKhLqh is alive
iamfqstvZbCYSDhlDnbq is alive
T is alive
zGub is alive...

result:

ok 10 lines

Test #6:

score: 10
Accepted
time: 0ms
memory: 1308kb

input:

10
kjbxCSWpMH is a duck, it is at FIlDOBA
gxRn is a duck, it is at zXofss
vIFtyFL is a duck, it is a...

output:

kjbxCSWpMH is alive
gxRn is alive
vIFtyFL is alive
PFeZj is alive
uEy is alive
qnoZYPzR is alive
Rff...

result:

ok 10 lines

Test #7:

score: 10
Accepted
time: 0ms
memory: 1312kb

input:

10
CdhUNaBieDYujJ is a goose, it is at ftZTshCjDGgjvPZ
e is a duck, it is at HHvP
fnjTJMUYgydjEeAFet...

output:

CdhUNaBieDYujJ is alive
e is alive
fnjTJMUYgydjEeAFet is alive
Vvc is alive
MLHmWVs is alive
AYDTmkf...

result:

ok 10 lines

Test #8:

score: 10
Accepted
time: 0ms
memory: 1468kb

input:

1000
zS is a duck, it is at uZoViqfzXzBHnojfjo
WUzyrypHYFMkE is a goose, it is at RqXtorsLNPVXWX
mbV...

output:

zS is alive
WUzyrypHYFMkE is dead
mbVP is alive
iWelC is alive
DqMTir is alive
Zr is alive
BsHCmmN i...

result:

ok 1000 lines

Test #9:

score: 10
Accepted
time: 2ms
memory: 1472kb

input:

1000
luK is a duck, it is at Jr
kz is a duck, it is at Q
momuTR is a duck, it is at beRModCS
HmqEgsw...

output:

luK is alive
kz is alive
momuTR is alive
HmqEgswLg is dead
uFNEeUULkDT is alive
uQgDGhomNgYQuwndOxKn...

result:

ok 1000 lines

Test #10:

score: 10
Accepted
time: 2ms
memory: 1468kb

input:

1000
IbBJmdORPKZQEUANbGl is a duck, it is at OJplxaPZjvPj
BzokAqyWjUIVWu is a duck, it is at xxYRvKG...

output:

IbBJmdORPKZQEUANbGl is alive
BzokAqyWjUIVWu is alive
tLHbuTjOxzopobuOMg is alive
rLeadcccgsTAuIbpOGU...

result:

ok 1000 lines

Extra Test:

score: 0
Extra Test Passed