Submission #734077

#TimeUsernameProblemLanguageResultExecution timeMemory
734077AmaarsaaPancake (NOI12_pancake)C++14
12 / 25
21 ms304 KiB
#include<bits/stdc++.h> using namespace std; using ll = long long; ll n, ans, p, j, s; void Dfs(ll a[], ll moves) { if ( moves < ans) return; if ( moves == 0) return ; s = n; for (ll i = 1; i <= n; i ++) { if ( a[i] == (n - i + 1)) s --; } if ( s == 0) { ans =moves; return; } for (ll i = 1; i <= n; i ++) { reverse(a + i,a +n + 1); Dfs(a, moves - 1); reverse(a + i, a + n + 1); } return ; } int main() { ll i, t, r; cin >> t; while ( t --) { cin >> n; ans = 0; ll a[n + 2], b[n + 2]; vector < pair < ll, ll > > v; for (i = 1; i <= n; i ++) { cin >> a[i]; v.push_back(make_pair(a[i], i)); } sort (v.begin(), v.end()); for ( i = 0; i < n; i ++) { a[v[i].second ] = i + 1; } for ( i = 1; i <= n; i ++) { if ( a[i] != (n - i + 1)) { for ( j = i; j <= n; j ++) { if ( a[j] == n - i + 1) r= j; } if ( r == n) ans ++; else ans += 2; reverse(a + r , a + n + 1); reverse(a + i, a + n + 1); } } for ( i = 1; i <= n; i ++) a[i] = b[i]; Dfs(a, 0); cout << ans << endl; } }

Compilation message (stderr)

pancake.cpp: In function 'int main()':
pancake.cpp:50:17: warning: 'r' may be used uninitialized in this function [-Wmaybe-uninitialized]
   50 |     reverse(a + r , a + n + 1);
      |                 ^
#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...