제출 #1289082

#제출 시각아이디문제언어결과실행 시간메모리
1289082semad3130새로운 문제 (POI11_met)C++20
컴파일 에러
0 ms0 KiB
#include <iostream>
#include <algorithm>
#include <bits/stdc++.h>

using namespace std;

#define int long long
typedef pair<int,int> pii;
const int maxn = 3e5 + 100;

typedef pair<pii,int> pi2;
typedef pair<int,pii> pi3;
int n, m, k, d;

void seyyed(){
	cin >> n >> m;vector<int> a(m+1), in[n+1];
	for(int i = 1; i <= m; i++)cin >> a[i], in[a[i]].push_back(i);
	vector<bool> mark(n+1);vector<int> mo(n+1), mo1(n+1), ans(n+1);vector<pi3> qr;
	for(int i = 1; i <= n; i++)cin >> mo[i];
	k = 120; int cnt = 1, l, r, c; cin >> d;
	vector<long long> ps(m+2,0);
	for(int da = 1; da <= d; da++){
		cin >> l >> r >> c;
		if(l <= r){
			ps[l] += c;
			if(r + 1 <= m) ps[r+1] -= c;
			qr.push_back({c,{{l,r},da}});
		}else{
			ps[l] += c;
			ps[1] += c;
			if(r + 1 <= m) ps[r+1] -= c;
			qr.push_back({c,{{1,r},da}});
			qr.push_back({c,{{l,m},da}});
		}
		if(da % k == 0){
			for(int i = 1; i <= m; i++)ps[i] += ps[i-1];
			vector<int> s;
			for(int i = 1; i <= n; i++){
				if(mark[i])continue;
				for(int g = 0; g < (int)in[i].size(); g++) mo1[i] += ps[in[i][g]];
				if(mo[i] - mo1[i] > 0) mo[i] -= mo1[i], mo1[i] = 0;
				else s.push_back(i), mark[i]=1;
			}
			for(int i1 = 0; i1 < (int)s.size(); i1++){
				int p = s[i1];
				for(int i = 0; i < (int)qr.size(); i++){
					int L = qr[i].second.first.first, R = qr[i].second.first.second;
					int in1 = lower_bound(in[p].begin(), in[p].end(), L)-in[p].begin();
					int in2 = upper_bound(in[p].begin(), in[p].end(), R)-in[p].begin();in2--;
					int cnt = in2 - in1 + 1;
					if(cnt <= 0) continue;
					long long pu = 1LL * qr[i].first * cnt;
					mo[p] -= pu;
					if(mo[p] <= 0){ans[p] = qr[i].second.second;break;}
				}
			}
			qr.clear(), fill(ps.begin(), ps.end(), 0);
		}
	}
	if(qr.size()){
		for(int i = 1; i <= m; i++)ps[i] += ps[i-1];
		vector<int> s;
		for(int i = 1; i <= n; i++){
			if(mark[i])continue;
			for(int g = 0; g < (int)in[i].size(); g++)mo1[i] += ps[in[i][g]];
			if(mo[i] - mo1[i] <= 0)s.push_back(i);
		}
		for(int i1 = 0; i1 < (int)s.size(); i1++){
			int p = s[i1];
			for(int i = 0; i < (int)qr.size(); i++){
				int L = qr[i].second.first.first, R = qr[i].second.first.second;
				int in1 = lower_bound(in[p].begin(), in[p].end(), L)-in[p].begin();
				int in2 = upper_bound(in[p].begin(), in[p].end(), R)-in[p].begin();in2--;
				int cnt = in2 - in1 + 1;
				if(cnt <= 0) continue;
				long long pu = 1LL * qr[i].first * cnt;
				mo[p] -= pu;
				if(mo[p] <= 0){ans[p] = qr[i].second.second;break;}
			}
		}
	}

	for(int i = 1; i <= n; i++){
		if(ans[i] == 0) cout << "NIE";
		else cout << ans[i];
		if(i != n) cout <<'\n';
	}
	return;
}

signed main(){
	ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	seyyed();
}

컴파일 시 표준 에러 (stderr) 메시지

met.cpp: In function 'void seyyed()':
met.cpp:27:37: error: no matching function for call to 'std::vector<std::pair<long long int, std::pair<long long int, long long int> > >::push_back(<brace-enclosed initializer list>)'
   27 |                         qr.push_back({c,{{l,r},da}});
      |                         ~~~~~~~~~~~~^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13/vector:66,
                 from /usr/include/c++/13/functional:64,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:53,
                 from met.cpp:3:
/usr/include/c++/13/bits/stl_vector.h:1281:7: note: candidate: 'constexpr void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = std::pair<long long int, std::pair<long long int, long long int> >; _Alloc = std::allocator<std::pair<long long int, std::pair<long long int, long long int> > >; value_type = std::pair<long long int, std::pair<long long int, long long int> >]'
 1281 |       push_back(const value_type& __x)
      |       ^~~~~~~~~
/usr/include/c++/13/bits/stl_vector.h:1281:35: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const std::vector<std::pair<long long int, std::pair<long long int, long long int> > >::value_type&' {aka 'const std::pair<long long int, std::pair<long long int, long long int> >&'}
 1281 |       push_back(const value_type& __x)
      |                 ~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/stl_vector.h:1298:7: note: candidate: 'constexpr void std::vector<_Tp, _Alloc>::push_back(value_type&&) [with _Tp = std::pair<long long int, std::pair<long long int, long long int> >; _Alloc = std::allocator<std::pair<long long int, std::pair<long long int, long long int> > >; value_type = std::pair<long long int, std::pair<long long int, long long int> >]'
 1298 |       push_back(value_type&& __x)
      |       ^~~~~~~~~
/usr/include/c++/13/bits/stl_vector.h:1298:30: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::vector<std::pair<long long int, std::pair<long long int, long long int> > >::value_type&&' {aka 'std::pair<long long int, std::pair<long long int, long long int> >&&'}
 1298 |       push_back(value_type&& __x)
      |                 ~~~~~~~~~~~~~^~~
met.cpp:32:37: error: no matching function for call to 'std::vector<std::pair<long long int, std::pair<long long int, long long int> > >::push_back(<brace-enclosed initializer list>)'
   32 |                         qr.push_back({c,{{1,r},da}});
      |                         ~~~~~~~~~~~~^~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/stl_vector.h:1281:7: note: candidate: 'constexpr void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = std::pair<long long int, std::pair<long long int, long long int> >; _Alloc = std::allocator<std::pair<long long int, std::pair<long long int, long long int> > >; value_type = std::pair<long long int, std::pair<long long int, long long int> >]'
 1281 |       push_back(const value_type& __x)
      |       ^~~~~~~~~
/usr/include/c++/13/bits/stl_vector.h:1281:35: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const std::vector<std::pair<long long int, std::pair<long long int, long long int> > >::value_type&' {aka 'const std::pair<long long int, std::pair<long long int, long long int> >&'}
 1281 |       push_back(const value_type& __x)
      |                 ~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/stl_vector.h:1298:7: note: candidate: 'constexpr void std::vector<_Tp, _Alloc>::push_back(value_type&&) [with _Tp = std::pair<long long int, std::pair<long long int, long long int> >; _Alloc = std::allocator<std::pair<long long int, std::pair<long long int, long long int> > >; value_type = std::pair<long long int, std::pair<long long int, long long int> >]'
 1298 |       push_back(value_type&& __x)
      |       ^~~~~~~~~
/usr/include/c++/13/bits/stl_vector.h:1298:30: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::vector<std::pair<long long int, std::pair<long long int, long long int> > >::value_type&&' {aka 'std::pair<long long int, std::pair<long long int, long long int> >&&'}
 1298 |       push_back(value_type&& __x)
      |                 ~~~~~~~~~~~~~^~~
met.cpp:33:37: error: no matching function for call to 'std::vector<std::pair<long long int, std::pair<long long int, long long int> > >::push_back(<brace-enclosed initializer list>)'
   33 |                         qr.push_back({c,{{l,m},da}});
      |                         ~~~~~~~~~~~~^~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/stl_vector.h:1281:7: note: candidate: 'constexpr void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = std::pair<long long int, std::pair<long long int, long long int> >; _Alloc = std::allocator<std::pair<long long int, std::pair<long long int, long long int> > >; value_type = std::pair<long long int, std::pair<long long int, long long int> >]'
 1281 |       push_back(const value_type& __x)
      |       ^~~~~~~~~
/usr/include/c++/13/bits/stl_vector.h:1281:35: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const std::vector<std::pair<long long int, std::pair<long long int, long long int> > >::value_type&' {aka 'const std::pair<long long int, std::pair<long long int, long long int> >&'}
 1281 |       push_back(const value_type& __x)
      |                 ~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/13/bits/stl_vector.h:1298:7: note: candidate: 'constexpr void std::vector<_Tp, _Alloc>::push_back(value_type&&) [with _Tp = std::pair<long long int, std::pair<long long int, long long int> >; _Alloc = std::allocator<std::pair<long long int, std::pair<long long int, long long int> > >; value_type = std::pair<long long int, std::pair<long long int, long long int> >]'
 1298 |       push_back(value_type&& __x)
      |       ^~~~~~~~~
/usr/include/c++/13/bits/stl_vector.h:1298:30: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::vector<std::pair<long long int, std::pair<long long int, long long int> > >::value_type&&' {aka 'std::pair<long long int, std::pair<long long int, long long int> >&&'}
 1298 |       push_back(value_type&& __x)
      |                 ~~~~~~~~~~~~~^~~
met.cpp:47:68: error: request for member 'first' in 'qr.std::vector<std::pair<long long int, std::pair<long long int, long long int> > >::operator[](((std::vector<std::pair<long long int, std::pair<long long int, long long int> > >::size_type)i)).std::pair<long long int, std::pair<long long int, long long int> >::second.std::pair<long long int, long long int>::first', which is of non-class type 'long long int'
   47 |                                         int L = qr[i].second.first.first, R = qr[i].second.first.second;
      |                                                                    ^~~~~
met.cpp:49:91: error: 'R' was not declared in this scope
   49 |                                         int in2 = upper_bound(in[p].begin(), in[p].end(), R)-in[p].begin();in2--;
      |                                                                                           ^
met.cpp:71:60: error: request for member 'first' in 'qr.std::vector<std::pair<long long int, std::pair<long long int, long long int> > >::operator[](((std::vector<std::pair<long long int, std::pair<long long int, long long int> > >::size_type)i)).std::pair<long long int, std::pair<long long int, long long int> >::second.std::pair<long long int, long long int>::first', which is of non-class type 'long long int'
   71 |                                 int L = qr[i].second.first.first, R = qr[i].second.first.second;
      |                                                            ^~~~~
met.cpp:73:83: error: 'R' was not declared in this scope
   73 |                                 int in2 = upper_bound(in[p].begin(), in[p].end(), R)-in[p].begin();in2--;
      |                                                                                   ^