Submission #66026

#TimeUsernameProblemLanguageResultExecution timeMemory
66026mhnd이상적인 도시 (IOI12_city)C++14
Compilation error
0 ms0 KiB
//#include "grader.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; const int N = 5e5+50; const ll oo = 1e18; const ll mod = 1e9; map<pair<ll,ll>,pair<int,int>> r,vis,cost; ll ans = 0; int dx[] = {1,-1,0,0}; int dy[] = {0,0,1,-1}; void bfs(int sx,int sy){ queue<pair<pair<int,int>,int>> q; q.push({{sx,sy},0}); while(q.size()){ pair<int,int> u = q.front().first; int cst = q.front().second; q.pop(); if(vis[u] == make_pair(sx,sy))continue; vis[u]={sx,sy}; for(int i=0;i<4;i++){ pair<int,int> v = {u.first+dx[i],u.second+dy[i]}; if(cost[v] == make_pair(sx,sy))continue; cost[v]={sx,sy}; ans = (ans+cst+1)%mod; q.push({v,cst+1}); } } } int DistanceSum(int N, int *X, int *Y) { if(N<=2000){ for(int i=0;i<N;i++)r[{X[i],Y[i]}]=1; for(int i=0;i<N;i++)bfs(X[i],Y[i]); return ans; } sort(X,X+N); int sum=0,ret=0,lst=X[0]; for(int i=0;i<N;i++){ if(X[i]!=lst){ ret = (ret + (X[i]-lst)*1ll*(sum*1ll*(N-sum))%mod)%mod; lst = X[i]; } sum++; } ans = ret; sort(Y,Y+N); sum=0;ret=0;lst=Y[0]; for(int i=0;i<N;i++){ if(Y[i]!=lst){ ret = (ret + (Y[i]-lst)*1ll*(sum*1ll*(N-sum))%mod)%mod; lst = Y[i]; } sum++; } ans = (ans+ret)%mod; return ans; }

Compilation message (stderr)

city.cpp: In function 'int DistanceSum(int, int*, int*)':
city.cpp:38:38: error: no match for 'operator=' (operand types are 'std::map<std::pair<long long int, long long int>, std::pair<int, int> >::mapped_type {aka std::pair<int, int>}' and 'int')
   for(int i=0;i<N;i++)r[{X[i],Y[i]}]=1;
                                      ^
In file included from /usr/include/c++/7/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/7/bits/char_traits.h:39,
                 from /usr/include/c++/7/ios:40,
                 from /usr/include/c++/7/istream:38,
                 from /usr/include/c++/7/sstream:38,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from city.cpp:2:
/usr/include/c++/7/bits/stl_pair.h:367:7: note: candidate: std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(typename std::conditional<std::__and_<std::is_copy_assignable<_Tp>, std::is_copy_assignable<_T2> >::value, const std::pair<_T1, _T2>&, const std::__nonesuch_no_braces&>::type) [with _T1 = int; _T2 = int; typename std::conditional<std::__and_<std::is_copy_assignable<_Tp>, std::is_copy_assignable<_T2> >::value, const std::pair<_T1, _T2>&, const std::__nonesuch_no_braces&>::type = const std::pair<int, int>&]
       operator=(typename conditional<
       ^~~~~~~~
/usr/include/c++/7/bits/stl_pair.h:367:7: note:   no known conversion for argument 1 from 'int' to 'std::conditional<true, const std::pair<int, int>&, const std::__nonesuch_no_braces&>::type {aka const std::pair<int, int>&}'
/usr/include/c++/7/bits/stl_pair.h:384:7: note: candidate: std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(typename std::conditional<std::__and_<std::is_move_assignable<_Tp>, std::is_move_assignable<_T2> >::value, std::pair<_T1, _T2>&&, std::__nonesuch_no_braces&&>::type) [with _T1 = int; _T2 = int; typename std::conditional<std::__and_<std::is_move_assignable<_Tp>, std::is_move_assignable<_T2> >::value, std::pair<_T1, _T2>&&, std::__nonesuch_no_braces&&>::type = std::pair<int, int>&&]
       operator=(typename conditional<
       ^~~~~~~~
/usr/include/c++/7/bits/stl_pair.h:384:7: note:   no known conversion for argument 1 from 'int' to 'std::conditional<true, std::pair<int, int>&&, std::__nonesuch_no_braces&&>::type {aka std::pair<int, int>&&}'
/usr/include/c++/7/bits/stl_pair.h:400:2: note: candidate: template<class _U1, class _U2> typename std::enable_if<std::__and_<std::is_assignable<_T1&, const _U1&>, std::is_assignable<_T2&, const _U2&> >::value, std::pair<_T1, _T2>&>::type std::pair<_T1, _T2>::operator=(const std::pair<_U1, _U2>&) [with _U1 = _U1; _U2 = _U2; _T1 = int; _T2 = int]
  operator=(const pair<_U1, _U2>& __p)
  ^~~~~~~~
/usr/include/c++/7/bits/stl_pair.h:400:2: note:   template argument deduction/substitution failed:
city.cpp:38:38: note:   mismatched types 'const std::pair<_T1, _T2>' and 'int'
   for(int i=0;i<N;i++)r[{X[i],Y[i]}]=1;
                                      ^
In file included from /usr/include/c++/7/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/7/bits/char_traits.h:39,
                 from /usr/include/c++/7/ios:40,
                 from /usr/include/c++/7/istream:38,
                 from /usr/include/c++/7/sstream:38,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from city.cpp:2:
/usr/include/c++/7/bits/stl_pair.h:411:2: note: candidate: template<class _U1, class _U2> typename std::enable_if<std::__and_<std::is_assignable<_T1&, _U1&&>, std::is_assignable<_T2&, _U2&&> >::value, std::pair<_T1, _T2>&>::type std::pair<_T1, _T2>::operator=(std::pair<_U1, _U2>&&) [with _U1 = _U1; _U2 = _U2; _T1 = int; _T2 = int]
  operator=(pair<_U1, _U2>&& __p)
  ^~~~~~~~
/usr/include/c++/7/bits/stl_pair.h:411:2: note:   template argument deduction/substitution failed:
city.cpp:38:38: note:   mismatched types 'std::pair<_T1, _T2>' and 'int'
   for(int i=0;i<N;i++)r[{X[i],Y[i]}]=1;
                                      ^