제출 #721205

#제출 시각아이디문제언어결과실행 시간메모리
721205vjudge1Zamjena (COCI18_zamjena)C++17
70 / 70
174 ms7520 KiB
#include<bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #define ld long double #define ll long long #define S second #define F first using namespace __gnu_pbds; using namespace std; typedef tree<long long, null_type, less_equal<long long>, rb_tree_tag, tree_order_statistics_node_update> Tree; const ll INF = 9223372036854775807LL; const ll inf = 2147483647; const ll MAXN = 200010; const ll MOD = 1e9 + 7; const ld PI = acos(-1); const ll NROOT = 320; ll binpow(ll a, ll b) { ll res = 1; for (;b; b /= 2, a *= a, a %= MOD) if (b & 1) res *= a, res %= MOD; return res % MOD; } ll gcd(ll a, ll b) {return b ? gcd(b, a % b) : a;} ll lcm(ll a, ll b) {return a * b / gcd(a, b);} ll invmod(ll a) {return binpow(a, MOD - 2);} ll stroi(string s) { ll ans = 0; for (ll i = 0; i < s.size(); i ++) { ans *= 10; ans += (s[i] - '0'); } return ans; } bool is(string b) { if (b[0] >= 'a' && b[0] <= 'z') { return 1; } return 0; } bool comp(ll n, vector<string> &a, vector<string> &b, map<string, ll> &v) { for (ll i = 1; i <= n; i ++) { if (!is(a[i]) && !is(b[i])) { if (a[i] != b[i]) { return 0; } } else if (is(a[i])) { if (is(b[i])) { if (v[a[i]] != -1) { if (v[b[i]] == -1) v[b[i]] = v[a[i]]; else if (v[b[i]] != v[a[i]]) { return 0; } } else { if (v[b[i]] != -1) v[a[i]] = v[b[i]]; } } else { if (v[a[i]] != -1 && v[a[i]] != stroi(b[i])) { return 0; } else if (v[a[i]] == -1) { v[a[i]] = stroi(b[i]); } } } else if (is(b[i])) { if (v[b[i]] == -1) v[b[i]] = stroi(a[i]); else if (v[b[i]] != -1 && v[b[i]] != stroi(a[i])) { return 0; } } } return 1; } int32_t main () { ios_base::sync_with_stdio(false); cin.tie(nullptr); ll n; cin >> n; vector<string> a(n + 1), b(n + 1); map<string, ll> v; for (ll i = 1; i <= n; i ++) { cin >> a[i]; if (is(a[i])) { v[a[i]] = -1; } } for (ll i = 1; i <= n; i ++) { cin >> b[i]; if (is(b[i])) { v[b[i]] = -1; } } comp(n, a, b, v); comp(n, a, b, v); comp(n, a, b, v); bool res = comp(n, a, b, v); /*for (ll i = 1; i <= n; i ++) { if (is(a[i])) cout << v[a[i]] << " "; else cout << a[i] << " "; } cout << "\n"; for (ll i = 1; i <= n; i ++) { if (is(b[i])) cout << v[b[i]] << " "; else cout << b[i] << " "; } cout << "\n";*/ if (res) cout << "DA\n"; else cout << "NE\n"; return 0; }

컴파일 시 표준 에러 (stderr) 메시지

zamjena.cpp: In function 'long long int stroi(std::string)':
zamjena.cpp:35:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   35 |   for (ll i = 0; i < s.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...