Submission #1253311

#TimeUsernameProblemLanguageResultExecution timeMemory
1253311chr34Triple Peaks (IOI25_triples)C++20
0 / 100
92 ms20656 KiB
#include <bits/stdc++.h>

using namespace std;

//#define int long long
#define endl "\n"
#define dbg(x) cout << #x << " = " << (x) << endl;
const long long INF = 1e18;
const int MAXN = 1e6 + 10;
const int MOD = 1e9 + 7;

/*bool match(vector<int> a, vector<int> b){
	sort(a.begin(), a.end());
	sort(b.begin(), b.end());
	
	for(int i = 0; i < 3; ++i) if(a[i] != b[i]) return false;
	
	return true;
}*/

long long count_triples(vector<int> h) {
    int n = h.size();
    long long ans = 0;

	set<vector<int>> s;

    for(int k = 0; k < n; ++k){
    	int i = k - h[k];
    	int j1 = k - h[i];
    	
    	if(i < j1 && j1 < k && h[j1] == j1 - i && s.find({i, j1, k}) == s.end()){
    		ans++;
    		//cout<<i<<" "<<j1<<" "<<k<<endl;
    		s.insert({i, j1, k});
    	}
    	int j2 = h[i] + i;
    	if(i < j2 && j2 < k && h[j2] == k - j2 && s.find({i, j2, k}) == s.end() ) {
    		ans++;
    		//cout<<i<<" "<<j2<<" "<<k<<endl;
    		s.insert({i, j2, k});
    	}
    }

    return ans;
}
vector<int> construct_range(int m, int k){
	return {};
}

/*int main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	//freopen("input.in", "r", stdin);
	//freopen("input.out", "w", stdout);    
	cout<<count_triples({1,1,2,2,3,4,4,5,5,7,7});
    return 0;
}*/
#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...