Submission #660591

#TimeUsernameProblemLanguageResultExecution timeMemory
660591Trisanu_DasWiring (IOI17_wiring)C++17
Compilation error
0 ms0 KiB
#include "wiring.h"
#include <bits/stdc++.h>
#define fi first
#define si second
using namespace std;
 
long long min_total_length(vector<int> r, vector<int> b) {
	int n, m; n = r.size();	m=b.size();
	vector<pair<int, int>> a;
	for (auto &i:r) a.emplace_back(i, 1);
	for (auto &i:b) a.emplace_back(i, -1);
	sort(a.begin(), a.end());
	reverse(r.begin(), r.end());
	reverse(b.begin(), b.end());
	int x = m;
	long long r = INT_MIN, b = INT_MIN, ans = 0, s = 0;
	vector<pair<long long, long long>> lst(n + m + 1, {INT_MAX, INT_MAX});
	lst[m] = {0, 0};
 
	for (auto &i:a) {
		long long temp = 0;
		(i.se == 1?r : b).pop_back();
		x += i.se;
		s += i.fi * i.se;
		if (i.se == 1) {
			r = i.fi;
			temp = ans + i.fi - b;
			if (b.size()) temp = min(temp, ans + b.back() - i.fi);
		}
		if (i.se == -1) {
			b =i .fi;
			temp = ans+i.fi-r;
			if (r.size()) temp = min(temp, ans + r.back()-i.fi);
		}
		ans=min(temp, lst[x].fi + abs(lst[x].se - s));
		lst[x] = {ans, s};
	}
	return ans;
}

Compilation message (stderr)

wiring.cpp: In function 'long long int min_total_length(std::vector<int>, std::vector<int>)':
wiring.cpp:16:12: error: declaration of 'long long int r' shadows a parameter
   16 |  long long r = INT_MIN, b = INT_MIN, ans = 0, s = 0;
      |            ^
wiring.cpp:7:40: note: 'std::vector<int> r' previously declared here
    7 | long long min_total_length(vector<int> r, vector<int> b) {
      |                            ~~~~~~~~~~~~^
wiring.cpp:16:25: error: declaration of 'long long int b' shadows a parameter
   16 |  long long r = INT_MIN, b = INT_MIN, ans = 0, s = 0;
      |                         ^
wiring.cpp:7:55: note: 'std::vector<int> b' previously declared here
    7 | long long min_total_length(vector<int> r, vector<int> b) {
      |                                           ~~~~~~~~~~~~^
wiring.cpp:22:6: error: 'struct std::pair<int, int>' has no member named 'se'
   22 |   (i.se == 1?r : b).pop_back();
      |      ^~
wiring.cpp:23:10: error: 'struct std::pair<int, int>' has no member named 'se'
   23 |   x += i.se;
      |          ^~
wiring.cpp:24:17: error: 'struct std::pair<int, int>' has no member named 'se'
   24 |   s += i.fi * i.se;
      |                 ^~
wiring.cpp:25:9: error: 'struct std::pair<int, int>' has no member named 'se'
   25 |   if (i.se == 1) {
      |         ^~
wiring.cpp:28:10: error: request for member 'size' in 'b', which is of non-class type 'long long int'
   28 |    if (b.size()) temp = min(temp, ans + b.back() - i.fi);
      |          ^~~~
wiring.cpp:28:43: error: request for member 'back' in 'b', which is of non-class type 'long long int'
   28 |    if (b.size()) temp = min(temp, ans + b.back() - i.fi);
      |                                           ^~~~
wiring.cpp:30:9: error: 'struct std::pair<int, int>' has no member named 'se'
   30 |   if (i.se == -1) {
      |         ^~
wiring.cpp:33:10: error: request for member 'size' in 'r', which is of non-class type 'long long int'
   33 |    if (r.size()) temp = min(temp, ans + r.back()-i.fi);
      |          ^~~~
wiring.cpp:33:43: error: request for member 'back' in 'r', which is of non-class type 'long long int'
   33 |    if (r.size()) temp = min(temp, ans + r.back()-i.fi);
      |                                           ^~~~
wiring.cpp:35:40: error: '__gnu_cxx::__alloc_traits<std::allocator<std::pair<long long int, long long int> >, std::pair<long long int, long long int> >::value_type' {aka 'struct std::pair<long long int, long long int>'} has no member named 'se'
   35 |   ans=min(temp, lst[x].fi + abs(lst[x].se - s));
      |                                        ^~