Submission #698993

#TimeUsernameProblemLanguageResultExecution timeMemory
698993jamezzzInside information (BOI21_servers)C++17
5 / 100
1974 ms2368 KiB
#include <bits/stdc++.h> using namespace std; #ifdef DEBUG #define dbg(...) printf(__VA_ARGS__); #define getchar_unlocked getchar #else #define dbg(...) #endif #define sf scanf #define pf printf #define fi first #define se second #define pb push_back #define psf push_front #define ppb pop_back #define ppf pop_front #define sz(x) (int)x.size() #define mnto(x,y) x=min(x,(__typeof__(x))y) #define mxto(x,y) x=max(x,(__typeof__(x))y) #define INF 1023456789 #define LINF 1023456789123456789 #define all(x) x.begin(),x.end() #define lb(x,v) (lower_bound(all(x),v)-x.begin()) #define ub(x,v) (upper_bound(all(x),v)-x.begin()) #define disc(x) sort(all(x));x.resize(unique(all(x))-x.begin()); typedef long long ll; typedef long double ld; typedef pair<int,int> ii; typedef pair<ll,ll> pll; typedef tuple<int,int,int> iii; typedef tuple<int,int,int,int> iiii; typedef vector<int> vi; typedef vector<ll> vll; typedef vector<ii> vii; mt19937 rng(time(0)); #define mod 1000000007 inline int add(int a,int b){ int r=a+b; while(r>=mod)r-=mod; while(r<0)r+=mod; return r; } inline int mult(int a,int b){ return (int)(((ll)(a*b))%mod); } inline int rd(){ int x=0; char ch=getchar_unlocked(); while(!(ch&16))ch=getchar();//keep reading while current character is whitespace while(ch&16){//this will break when ‘\n’ or ‘ ‘ is encountered x=(x<<3)+(x<<1)+(ch&15); ch=getchar_unlocked(); } return x; } #define maxn 4005 int n,k,wt[maxn]; vii AL[maxn]; int main(){ sf("%d%d",&n,&k); for(int i=0;i<n-1+k;++i){ char c;sf(" %c",&c); if(c=='S'){ int a,b;sf("%d%d",&a,&b); AL[a].pb({b,i}); AL[b].pb({a,i}); } else if(c=='Q'){ int a,b;sf("%d%d",&a,&b); memset(wt,-1,sizeof wt); queue<int> q; wt[b]=0; q.push(b); while(!q.empty()){ int u=q.front();q.pop(); for(auto[v,w]:AL[u]){ if(wt[v]!=-1||wt[u]>w)continue; wt[v]=w;q.push(v); } } if(wt[a]!=-1)pf("yes\n"); else pf("no\n"); } else{ int b;sf("%d",&b); memset(wt,-1,sizeof wt); queue<int> q; wt[b]=0; q.push(b); while(!q.empty()){ int u=q.front();q.pop(); for(auto[v,w]:AL[u]){ if(wt[v]!=-1||wt[u]>w)continue; wt[v]=w;q.push(v); } } int ans=0; for(int i=1;i<=n;++i)if(wt[i]!=-1)++ans; pf("%d\n",ans); } } }

Compilation message (stderr)

servers.cpp: In function 'int main()':
servers.cpp:68:4: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   68 |  sf("%d%d",&n,&k);
      |    ^
servers.cpp:70:12: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   70 |   char c;sf(" %c",&c);
      |            ^
servers.cpp:72:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   72 |    int a,b;sf("%d%d",&a,&b);
      |              ^
servers.cpp:77:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   77 |    int a,b;sf("%d%d",&a,&b);
      |              ^
servers.cpp:93:12: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   93 |    int b;sf("%d",&b);
      |            ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...