제출 #1250322

#제출 시각아이디문제언어결과실행 시간메모리
1250322faustaadp3개의 봉우리 (IOI25_triples)C++20
6 / 100
1059 ms14500 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 < min(N, i + 11); j++) { for(ll k = j + 1; k < min(N, i + 11); k++) { cek(i, j, k); } } } 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...