Submission #1250316

#TimeUsernameProblemLanguageResultExecution timeMemory
1250316faustaadpTriple Peaks (IOI25_triples)C++20
18 / 100
2095 ms14504 KiB
#include "triples.h" #include "bits/stdc++.h" using namespace std; typedef long long ll; #define fi first #define se second #define pb push_back vector<vector<ll> > isi; vector<ll> h; void cek(ll A, ll B, ll C) { if(A >= B || B >= C) return ; vector<ll> tmp1, tmp2; tmp1.pb(h[A]); tmp1.pb(h[B]); tmp1.pb(h[C]); tmp2.pb(B - A); tmp2.pb(C - B); tmp2.pb(C - A); sort(tmp1.begin(), tmp1.end()); sort(tmp2.begin(), tmp2.end()); for(int i = 0; i < 3; i++) { if(tmp1[i] != tmp2[i]) { return ; } } isi.pb({A, B, C}); } long long count_triples(std::vector<int> H) { ll N = H.size(); h.clear(); isi.clear(); for(ll i = 0; i < N; i++) { h.pb(H[i]); } for(ll i = 0; i < N; i++) { for(ll j = i + 1; j < N; j++) { cek(i, i + H[i], j); cek(i, i + H[j], j); cek(i, j - H[i], j); cek(i, j - H[j], j); } } ll ret = 0; sort(isi.begin(), isi.end()); for(ll i = 0; i < isi.size(); i++) { if(i == 0 || isi[i - 1] != isi[i]) { ret++; } } return ret; } std::vector<int> construct_range(int M, int K) { return {1, 1, 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...
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...