Submission #158694

#TimeUsernameProblemLanguageResultExecution timeMemory
158694InfiniteJestZamjena (COCI18_zamjena)C++14
70 / 70
204 ms11768 KiB
#include <iostream> #include <fstream> #include <vector> #include <queue> #include <algorithm> #include <math.h> #include <map> #define pb push_back #define mp make_pair #define fi first #define se second using namespace std; ifstream in("input.txt"); ofstream out("output.txt"); typedef long long ll; int n; vector<int> nodi[110000]; string va[50001]; string vb[50001]; int val[110000]; bool flag=1; bool vis[110000]; map<string,int> indexes; int indtot=1; int num(string s){ int tot=0; for(int i=0;i<s.length();i++){ tot=tot*10+s[i]-48; } return tot; } void dfs(int k, int f){ vis[k]=1; val[k]=f; for(int i=0;i<nodi[k].size();i++){ if(!vis[nodi[k][i]]){ vis[nodi[k][i]]=1; dfs(nodi[k][i],f); } } } int main(){ cin>>n; for(int i=0;i<n;i++){ cin>>va[i]; if(indexes[va[i]]==0){ indexes[va[i]]=indtot; indtot++; } } for(int i=0;i<n;i++){ cin>>vb[i]; if(indexes[vb[i]]==0){ indexes[vb[i]]=indtot; indtot++; } } for(int i=0;i<n;i++){ if(va[i][0]>='a'&&va[i][0]<='z'&&vb[i][0]>='a'&&vb[i][0]<='z'){ nodi[indexes[va[i]]].pb(indexes[vb[i]]); nodi[indexes[vb[i]]].pb(indexes[va[i]]); } } for(int i=0;i<n;i++){ if(va[i][0]>='0'&&va[i][0]<='9'&&(vb[i][0]<'0'||vb[i][0]>'9')){ if(val[indexes[vb[i]]]==0){ dfs(indexes[vb[i]],num(va[i])); } else{ if(val[indexes[vb[i]]]!=num(va[i])){ flag=0; break; } } } else if((va[i][0]<'0'||va[i][0]>'9')&&(vb[i][0]>='0'&&vb[i][0]<='9')){ if(val[indexes[va[i]]]==0){ dfs(indexes[va[i]],num(vb[i])); } else{ if(val[indexes[va[i]]]!=num(vb[i])){ flag=0; break; } } } else if((va[i][0]>='0'&&va[i][0]<='9')&&vb[i][0]>='0'&&vb[i][0]<='9'){ if(num(va[i])!=num(vb[i])){ flag=0; break; } } } if(flag)cout<<"DA"; else cout<<"NE"; }

Compilation message (stderr)

zamjena.cpp: In function 'int num(std::__cxx11::string)':
zamjena.cpp:31:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i=0;i<s.length();i++){
               ~^~~~~~~~~~~
zamjena.cpp: In function 'void dfs(int, int)':
zamjena.cpp:40:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i=0;i<nodi[k].size();i++){
               ~^~~~~~~~~~~~~~~
#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...