QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#269025 | #1774. Customs Controls | Terk | WA | 24ms | 120584kb | C++14 | 1.5kb | 2023-11-29 10:51:56 | 2023-11-29 10:51:57 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
const int N=2e6+10;
int n,m,k,f;
int Rem[N],ans[N];
int u[N],v[N];
int dis[2][N],vis[N];
int dfn[N],idx[N],tot;
vector<int> e[N],E[N];
priority_queue<pair<int,int>,vector<pair<int,int> >,greater<pair<int,int> > > q;
void dij(int s,int op){
memset(dis[op],0x3f,sizeof(dis[op]));
memset(vis,0,sizeof(vis));
dis[op][s]=Rem[s];
q.push({0,s});
while(!q.empty()){
int x=q.top().second;
q.pop();
if(vis[x]) continue;
vis[x]=1;
for(auto y:e[x]){
if(dis[op][y]>Rem[y]+dis[op][x]){
dis[op][y]=Rem[y]+dis[op][x];
q.push({dis[op][y],y});
}
}
}
}
void dfs(int x,int fa){
if(x==n&&fa==1) f=1;
dfn[x]=++tot;
idx[tot]=x;
for(auto y:E[x]){
if(y==fa) continue;
dfs(y,x);
}
}
int main(){
cin>>n>>m>>k;
for(int i=1;i<=n;i++) cin>>Rem[i];
for(int i=1;i<=m;i++){
cin>>u[i]>>v[i];
e[u[i]].push_back(v[i]);
e[v[i]].push_back(u[i]);
}
dij(1,0);
dij(n,1);
for(int i=1;i<=m;i++){
if(dis[0][u[i]]+dis[1][v[i]]==dis[0][n]){
E[u[i]].push_back(v[i]);
E[v[i]].push_back(u[i]);
}
}
dfs(1,0);
if(f){
if(n==2&&k==1) cout<<"impossible";
else if(k<2){
for(int i=1;i<n-k;i++) cout<<'S';
for(int i=n-k;i<n;i++) cout<<'N';
cout<<'S';
}
else{
for(int i=1;i<k;i++) cout<<'N';
for(int i=k;i<n;i++) cout<<'S';
cout<<'N';
}
return 0;
}
for(int i=1;i<=k;i++) ans[idx[i]]=1;
for(int i=1;i<=n;i++) cout<<(ans[i]?'N':'S');
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 12ms
memory: 120580kb
input:
5 10 2 1 1 1 1 1 3 4 5 4 3 1 4 1 3 5 2 1 2 4 2 5 1 5 2 3
output:
NSSSN
result:
ok accepted
Test #2:
score: -100
Wrong Answer
time: 24ms
memory: 120584kb
input:
10 9 5 1 1 1 1 1 1 1 1 1 1 9 5 7 1 8 1 10 1 5 3 6 1 2 1 3 2 4 1
output:
NSSSSSSSSS
result:
wrong answer number of N:s not equal to k