Submission #1302213

#TimeUsernameProblemLanguageResultExecution timeMemory
1302213Valaki2Triple Peaks (IOI25_triples)C++20
18 / 100
2097 ms22128 KiB
#include "triples.h" #include <bits/stdc++.h> using namespace std; #define int long long #define pb push_back #define mp make_pair #define pii pair<int, int> #define fi first #define se second int n; vector<int> v; set<vector<int> > s; bool good(int a, int b, int c) { if(a < 1 || a > n || b < 1 || b > n || c < 1 || c > n) { return false; } vector<int> v1 = {abs(a - b), abs(a - c), abs(b - c)}; vector<int> v2 = {v[a], v[b], v[c]}; sort(v1.begin(), v1.end()); sort(v2.begin(), v2.end()); vector<int> v3 = {a, b, c}; sort(v3.begin(), v3.end()); if(v1 == v2) { s.insert(v3); } return (v1 == v2); } int count_triples(vector<signed> H) { n = H.size(); v.assign(1 + n + 1, 0); for(int i = 1; i <= n; i++) { v[i] = H[i - 1]; } for(int i = 1; i <= n; i++) { for(int j = i + 1; j <= n; j++) { good(i, j, i + v[i]); good(i, j, i - v[i]); good(i, j, i + v[j]); good(i, j, i - v[j]); good(i, j, j + v[i]); good(i, j, j - v[i]); good(i, j, j + v[j]); good(i, j, j - v[j]); } } return s.size(); } vector<signed> construct_range(signed M, signed 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...