Submission #1311722

#TimeUsernameProblemLanguageResultExecution timeMemory
1311722samarthkulkarniLightning Rod (NOI18_lightningrod)C++17
66 / 100
1098 ms114084 KiB
#include <bits/stdc++.h>
using namespace std;

#pragma GCC target ("avx2")
#pragma GCC optimize ("O3")
#pragma GCC optimize ("unroll-loops")
#pragma GCC optimize("fast-math")

using ll = int;
#define vi vector<long long>
#define all(x) x.begin(), x.end()
#define endl "\n"
#define pr pair<ll, ll>
#define ff first
#define ss second

void solution();
int main(){
    solution();
    return 0;
}

const int N = 1e7;
pr a[N];
ll avl[N];


inline bool isValid(int i, int j) {
	return abs(a[i].ff-a[j].ff) <= a[j].ss-a[i].ss;
}

void solution() {
	ll n; 
	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf("%d", &a[i].ff);
		scanf("%d", &a[i].ss);
	}


	

	int p = -1;

	for (int i = 0; i < n; i++) {
		if (p == -1) avl[++p] = i;
		else {

			if (isValid(i, avl[p])) continue;

			while (p >= 0 && isValid(avl[p], i)) p--;

			avl[++p] = i;

		}
	}


	printf("%d\n", p+1);




}

Compilation message (stderr)

Main.cpp: In function 'void solution()':
Main.cpp:34:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   34 |         scanf("%d", &n);
      |         ~~~~~^~~~~~~~~~
Main.cpp:36:22: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   36 |                 scanf("%d", &a[i].ff);
      |                 ~~~~~^~~~~~~~~~~~~~~~
Main.cpp:37:22: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   37 |                 scanf("%d", &a[i].ss);
      |                 ~~~~~^~~~~~~~~~~~~~~~
#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...