Submission #1254662

#TimeUsernameProblemLanguageResultExecution timeMemory
1254662nickolasarapidisTriple Peaks (IOI25_triples)C++17
5.29 / 100
2095 ms1860 KiB
#include "triples.h" #include <bits/stdc++.h> using namespace std; #define F first #define S second long long count_triples(std::vector<int> H){ int N = H.size(); long long ans = 0; for(int i = 0; i < N; i++){ for(int j = i + 1; j < N; j++){ int dij = j - i; int max_h = max(H[i], H[j]); if(dij == H[i]){ if(j + H[j] < N and H[j + H[j]] == H[i] + H[j]) ans++; if(j + H[j] - H[i] < N and H[j + H[j] - H[i]] == H[j] - H[i]) ans++; } else if(dij == H[j]){ if(j + H[i] < N and H[j + H[i]] == H[i] + H[j]) ans++; //if(j + H[i] - H[j] < N and H[j + H[i] - H[j]] == H[i] - H[j]) ans++; } else{ if(dij < max_h){ if(j + min(H[i], H[j]) < N and H[j + min(H[i], H[j])] == dij) ans++; } } } } return ans; } vector<int> construct_range(int M, int K){ vector<int> ans(M); int cnt = 1; for(int i = 0; i < M; i++){ if(cnt == 1 or cnt == 3){ ans[i] = 1; } else{ ans[i] = 2; } if(cnt == 3) cnt = 1; else cnt++; } return ans; }
#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...