QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#688830 | #9521. Giving Directions in Harbin | ucup-team4992# | AC ✓ | 12ms | 3628kb | C++20 | 2.1kb | 2024-10-30 13:51:06 | 2024-10-30 13:51:06 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
using ll=long long;
const int N=100+5;
int n;
string str[N];
int len[N];
string ans1[N];
int ans2[N],tot;
vector<pair<int,int>>ans;
void solve(){
tot=0;
ans.clear();
cin>>n;
for(int i=1; i<=n; i++){
cin>>str[i]>>len[i];
}
ans1[++tot]=str[1];
ans2[tot]=len[1];
for(int i=2; i<=n; i++){
if((str[i]=="W" && ans1[tot]=="E") || (str[i]=="E" && ans1[tot]=="W") ||
(str[i]=="N" && ans1[tot]=="S") || (str[i]=="S" && ans1[tot]=="N")){
ans2[tot]-=len[i];
if(ans2[tot]==0) tot--;
else if(ans2[tot]<0){
ans2[tot]=-ans2[tot];
ans1[tot]=(ans1[tot]=="W" ? "E" : (ans1[tot]=="E" ? "W" : (ans1[tot]=="N" ? "S" : "N")));
}
}else if(str[i]==ans1[tot]) ans2[tot]+=len[i];
else ans1[++tot]=str[i],ans2[tot]=len[i];
}
if(tot==0){
cout<<"4 N\n";
cout<<"Z 1\nL\nL\nZ 1\n";
}else{
// cout<<tot<<" "<<ans1[1]<<"\n";
ans.push_back(make_pair(1,ans2[1]));
string pre=ans1[1];
for(int i=2; i<=tot; i++){
if((pre=="W" && ans1[i]=="N") || (pre=="N" && ans1[i]=="E" )|| (pre=="E" && ans1[i]=="S") || (pre=="S" && ans1[i]=="W"))
ans.push_back(make_pair(2,0));
else if((pre=="N" && ans1[i]=="W") || (pre=="E" && ans1[i]=="N") || (pre=="S" && ans1[i]=="E") || (pre=="W" && ans1[i]=="S"))
ans.push_back(make_pair(3,0));
else if(pre!=ans1[i])
ans.push_back(make_pair(2,0)),
ans.push_back(make_pair(2,0));
ans.push_back(make_pair(1,ans2[i]));
pre=ans1[i];
}
cout<<ans.size()<<" "<<ans1[1]<<"\n";
for(auto x:ans){
cout<<(x.first==1 ? "Z" : (x.first==2 ? "R" : "L"));
if(x.first==1) cout<<" "<<x.second;
cout<<"\n";
}
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
int T;cin>>T;
while(T--){
solve();
}
return 0;
}
这程序好像有点Bug,我给组数据试试?
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3608kb
input:
1 2 S 2 E 1
output:
3 S Z 2 L Z 1
result:
ok ok (1 test case)
Test #2:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
99 4 E 6 N 1 W 2 S 8 8 W 10 N 1 E 10 S 2 E 2 N 2 W 2 S 1 9 N 5 E 4 N 7 E 6 S 9 E 8 N 4 W 6 N 7 6 N 6 E 6 N 8 W 9 S 7 E 2 8 E 6 S 9 W 5 S 4 W 6 N 4 E 5 N 9 8 N 6 W 10 N 6 W 6 S 6 E 6 S 6 E 10 10 N 7 W 3 N 5 W 5 S 8 W 10 N 6 E 9 N 8 E 8 8 W 9 N 10 E 6 S 10 E 9 S 10 W 6 N 10 4 W 5 N 1 E 5 S 1 4 W 4 S 8...
output:
7 E Z 6 L Z 1 L Z 2 L Z 8 15 W Z 10 R Z 1 R Z 10 R Z 2 L Z 2 L Z 2 L Z 2 L Z 1 17 N Z 5 R Z 4 L Z 7 R Z 6 R Z 9 L Z 8 L Z 4 L Z 6 R Z 7 11 N Z 6 R Z 6 L Z 8 L Z 9 L Z 7 L Z 2 15 E Z 6 R Z 9 R Z 5 L Z 4 R Z 6 R Z 4 R Z 5 L Z 9 15 N Z 6 L Z 10 R Z 6 L Z 6 L Z 6 L Z 6 R Z 6 L Z 10 19 N Z 7 L Z 3 R Z 5 ...
result:
ok ok (99 test cases)
Test #3:
score: 0
Accepted
time: 12ms
memory: 3608kb
input:
10000 1 W 9 1 N 3 10 W 10 N 7 W 5 S 9 W 9 S 8 E 9 S 6 E 5 S 5 2 E 8 S 10 2 N 7 W 5 5 S 4 W 3 S 7 E 4 N 7 8 N 7 E 8 N 3 E 9 S 5 W 5 S 9 W 10 9 W 9 S 6 E 6 N 8 W 5 N 6 W 3 N 8 W 7 3 S 9 W 2 N 10 5 N 6 E 4 N 6 E 10 N 1 10 S 7 W 4 N 3 E 5 S 7 W 8 N 2 E 8 N 4 W 8 8 S 9 W 1 N 4 E 6 N 1 W 8 N 6 W 6 4 W 10 ...
output:
1 W Z 9 1 N Z 3 19 W Z 10 R Z 7 L Z 5 L Z 9 R Z 9 L Z 8 L Z 9 R Z 6 L Z 5 R Z 5 3 E Z 8 R Z 10 3 N Z 7 L Z 5 9 S Z 4 R Z 3 L Z 7 L Z 4 L Z 7 15 N Z 7 R Z 8 L Z 3 R Z 9 R Z 5 R Z 5 L Z 9 R Z 10 17 W Z 9 L Z 6 L Z 6 L Z 8 L Z 5 R Z 6 L Z 3 R Z 8 L Z 7 5 S Z 9 R Z 2 R Z 10 9 N Z 6 R Z 4 L Z 6 R Z 10 L ...
result:
ok ok (10000 test cases)
Extra Test:
score: 0
Extra Test Passed