Submission #59234

# Submission time Handle Problem Language Result Execution time Memory
59234 2018-07-21T09:42:57 Z Just_Solve_The_Problem New Home (APIO18_new_home) C++11
0 / 100
494 ms 8084 KB
#include <bits/stdc++.h>

using namespace std;

#define pii pair < int, int >
#define fr first
#define sc second
#define mk make_pair
#define pb push_back
#define sz(s) (int)s.size()
#define all(s) s.begin(), s.end()

const int N = (int)3e5 + 7;
const int inf = (int)1e9 + 7;

int n, k, q;
int x[N], t[N], a[N], b[N];
pii ar[N];
vector < int > pos;
int cur[N];
vector < pii > query;
bool has[N];

main() {
	scanf("%d %d %d", &n, &k, &q);
	for (int i = 1; i <= n; i++) {
		scanf("%d %d %d %d", &ar[i].fr, &ar[i].sc, &a[i], &b[i]);		
		has[ar[i].sc] = 1;
		pos.pb(ar[i].fr);
	}
	for (int i = 1; i <= k; i++) {
		if (!has[i]) {
			for (int j = 1; j <= q; j++) {
				puts("-1");
			}
			return 0;
		}
	}
	sort(all(pos));
	for (int i = 1; i <= q; i++) {
		int l, y;
		scanf("%d %d", &l, &y);
		int pos1 = lower_bound(all(pos), l) - pos.begin();
		int ans = inf;
		if (pos1 < sz(pos))
			ans = min(ans, abs(pos[pos1] - l));
		if (pos1)
			ans = min(ans, abs(l - pos[pos1 - 1]));
		pos1 = upper_bound(all(pos), l) - pos.begin();
		if (pos1 < sz(pos))
			ans = min(ans, abs(l - pos[pos1]));
		if (pos1)
			ans = min(ans, abs(l - pos[pos1 - 1]));
		printf("%d\n", ans);
	}
	
}

Compilation message

new_home.cpp:24:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main() {
      ^
new_home.cpp: In function 'int main()':
new_home.cpp:25:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d %d", &n, &k, &q);
  ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
new_home.cpp:27:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d %d %d", &ar[i].fr, &ar[i].sc, &a[i], &b[i]);  
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
new_home.cpp:42:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d", &l, &y);
   ~~~~~^~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Incorrect 3 ms 496 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Incorrect 3 ms 496 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 494 ms 8084 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 463 ms 8084 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Incorrect 3 ms 496 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Incorrect 3 ms 496 KB Output isn't correct
3 Halted 0 ms 0 KB -