Submission #201267

#TimeUsernameProblemLanguageResultExecution timeMemory
201267smjleoPolitičari (COCI20_politicari)C++14
70 / 70
25 ms2424 KiB
#pragma region cp-helper #include <bits/stdc++.h> using namespace std; #define AC ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0) #define ll long long #define ull unsigned long long #define ii pair<int, int> #define lll pair<ll, ll> #define vi vector<int> #define vvi vector<vi> #define vl vector<ll> #define vll vector<lll> #define vvl vector<vl> #define vii vector<ii> #define all(a) a.begin(), a.end() #define qsort(a) sort(all(a)) #define qsortd(a) sort(all(a), greater<>()) #define qsortf(a, f) sort(all(a), f) #define pb(n) push_back(n) #define eb(n) emplace_back(n) #define pp(a, b) emplace_back(a, b) #define umap unordered_map #define uset unordered_set #define nl '\n' #define fileio(in, out) freopen(in, "r", stdin); freopen(out, "w", stdout) #define qmod %mod #define pls int #define give main() const int mod = 1000000007; #pragma endregion const int N = 5*1e2+5; ll n, k, g[N][N], offset, endi; vi ans = {1}; map<lll, ll> m; void dfs(ll prev, ll node, ll index) { if (m.find({prev, node}) != m.end()) { offset = m[{prev, node}]; endi = index; return; } m[{prev, node}] = index; ans.pb(node); dfs(node, g[node][prev], index+1); } pls give { AC; cin >> n >> k; for (int i=1; i<=n; i++) for (int j=1; j<=n; j++) cin >> g[i][j]; for (int i=1; i<=n; i++) { if (g[1][i] == 2) m[{i, 1}] = 1; } dfs(1, 2, 2); if (k <= offset) cout << ans[k-1] << nl; else cout << ans[offset + ((k-offset) % (endi-offset))-1]; }

Compilation message (stderr)

politicari.cpp:1:0: warning: ignoring #pragma region cp [-Wunknown-pragmas]
 #pragma region cp-helper
 
politicari.cpp:30:0: warning: ignoring #pragma endregion  [-Wunknown-pragmas]
 #pragma endregion
#Verdict Execution timeMemoryGrader output
Fetching results...