Submission #119286

#TimeUsernameProblemLanguageResultExecution timeMemory
119286shoemakerjoZamjena (COCI18_zamjena)C++14
70 / 70
115 ms20600 KiB
#include <bits/stdc++.h> using namespace std; int n; const int maxn = 100010; bool isnum(string& s) { for (int i = 0; i < s.length(); i++) { if (s[i] - '0' < 0 || s[i]-'0' > 9) return false; } return true; } int nums[maxn*2]; string vs[maxn*2]; //all of these are unioned map<string, int> lastseen; //lastseen for this string int par[maxn*2]; set<int> stuff[maxn*2]; int findset(int u) { if (par[u] == u) return u; return par[u] = findset(par[u]); } void unionset(int a, int b) { a = findset(a); b = findset(b); if (a == b) return; par[a] = b; //path compression gets lg } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> n; string cur; for (int i = 1; i <= 2*n; i++) { par[i] = i; cin >> cur; if (isnum(cur)) nums[i] = stoi(cur); else vs[i] = cur; } //union me with all else with my string for (int i = 1; i <= 2*n; i++) { if (nums[i]) continue; // cout << i << " :: " << nums[i] << endl; if (lastseen.count(vs[i])) { // cout << i << " and " << lastseen[vs[i]] << endl; unionset(i, lastseen[vs[i]]); } lastseen[vs[i]] = i; } for (int i = 1; i <= n; i++) { unionset(i, n+i); } bool ok = true; for (int i = 1; i <= 2*n; i++) { if (nums[i]) stuff[findset(i)].insert(nums[i]); } for (int i = 1; i <= 2*n; i++) { if (par[i] == i) { // cout << i << " : " << stuff[i].size() << endl; if (stuff[i].size() > 1) ok = false; } } if (ok) cout << "DA" << endl; else cout << "NE" << endl; }

Compilation message (stderr)

zamjena.cpp: In function 'bool isnum(std::__cxx11::string&)':
zamjena.cpp:9:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i = 0; i < s.length(); 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...