Submission #1267912

#TimeUsernameProblemLanguageResultExecution timeMemory
1267912mofumofu3개의 봉우리 (IOI25_triples)C++20
11 / 100
24 ms1864 KiB
#include <bits/stdc++.h>

using namespace std;
typedef long long int ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef long double ld;
//#define mp make_pair
#define pb push_back
#define eb emplace_back
#define vi vector<ll>
#define vii vector<pair<int,int>>
#define ti tuple<ll,ll,ll>
#define ff first 
#define ss second
#define rep(i,a,b) for(ll i=(a); i<(b); i++)
#define all(x) x.begin(),x.end()
#define sz(a) ((int) (a).size())
#define nl '\n'
#define cma <<','<<
ll inf = 1e18;
const ll maxn = 1e5+5;
ll mod = 1e9 + 7;

long long count_triples(std::vector<int> h) {
	int n = sz(h);
	//check non decreasing
	rep(i, 0, n - 1) {
		if (h[i] > h[i + 1]) {
			return -1;
		}
	}
	
	auto check = [&](int i, int j, int k) {
		if (i >= j || j >= k) {
			return 0;
		}	
		vector<int> a = {j - i, k - i, k - j};
		vector<int> b = {h[i], h[j], h[k]};
		sort(all(a));
		if (a == b) return 1;
		else return 0;
	};
	
	int ans = 0;
	rep(k, 0, n) {
		int i = k - h[k];
		if (i < 0 || i >= k) continue;
		ans += check(i, k - h[i], k);
		if (h[i] + i != k - h[i]) {
			ans += check(i, h[i] + i, k);
		}
	}	
	return ans;
}

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...