Submission #572889

#TimeUsernameProblemLanguageResultExecution timeMemory
572889MohamedAliSaidaneArt Collections (BOI22_art)C++17
0 / 100
3037 ms336 KiB
#include<bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include "art.h" using namespace __gnu_pbds; using namespace std; typedef tree<int,null_type,less<int>,rb_tree_tag, tree_order_statistics_node_update> indexed_set; typedef long long ll; typedef long double ld; typedef pair<int,int> pii; typedef pair<ll,ll> pll; typedef pair<ld,ld> pld; typedef vector<int> vi; typedef vector<ll> vll; typedef vector<pii> vpi; typedef vector<pll> vpl; #define pb push_back #define popb pop_back #define pp pop_back #define pf push_front #define popf pop_front #define all(x) (x).begin(),(x).end() #define ff first #define ss second ///#define int ll int nx[4] = {0,0,1,-1}, ny[4] = {1,-1,0,0}; 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);} const int nax = 4001; int n; vi adj[nax]; int sup(int x, int g) { if(x == g) return 1; for(auto e: adj[x]) { if(sup(e,g) == 1) return 1; } return 0; } void solve(int N) { n = N; vi perm; for(int i = 1 ;i <= n; i ++) perm.pb(i); int curcost = publish(perm); bool chng = false; while(curcost > 0) { for(int i= n - 1; i > 0; i --) { if(sup(perm[i],perm[i - 1])) { swap(perm[i],perm[i - 1]); chng = true; } else if(sup(perm[i - 1],perm[i])) continue; else { if(chng) curcost = publish(perm); int cst = publish(perm); if(cst > curcost) { swap(perm[i - 1],perm[i]); adj[perm[i - 1]].pb(perm[i]); } else { curcost = cst; adj[perm[i]].pb(perm[i - 1]); } chng = false; } } } answer(perm); }

Compilation message (stderr)

interface.cpp: In function 'int publish(std::vector<int>)':
interface.cpp:20:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   20 |     if(v.size() != N) {
      |        ~~~~~~~~~^~~~
interface.cpp: In function 'void answer(std::vector<int>)':
interface.cpp:36:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   36 |     if(v.size() != N) {
      |        ~~~~~~~~~^~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...