제출 #348290

#제출 시각아이디문제언어결과실행 시간메모리
348290tengiz05자리 배치 (IOI18_seats)C++17
컴파일 에러
0 ms0 KiB
#include"seats.h" #include<bits/stdc++.h> using namespace std; vector<pair<int,int>>v; #define pii pair<int,int> int h,w; struct node{ vector<int> mn,mx; int num=10000; void update(int pos,int val){ pos+=num; for(mn[pos]=val,mx[pos]=val;pos>1;pos>>=1){ mn[pos>>1]=min(mn[pos],mn[pos^1]); mx[pos>>1]=max(mx[pos],mx[pos^1]); } } int getmn(int l, int r){ int res=2e9; for(l+=num,r+=num;l<=r;l>>=1,r>>=1){ if(l&1)res=min(res,mn[l++]); if(!(r&1))res=min(res,mn[r--]); } } int getmx(int l, int r){ int res=0; for(l+=num,r+=num;l<=r;l>>=1,r>>=1){ if(l&1)res=max(res,mx[l++]); if(!(r&1))res=max(res,mx[r--]); } } pii get(int l,int r){ pii res={getmn(l,r),getmx(l,r)}; return res; } void build(){ mn.assign(20001); mn.assign(20001); } }tree1,tree2; void give_initial_chart(int H,int W,vector<int>x,vector<int>y){ tree1.build(); tree2.build(); h=H,w=W; for(int i=0;i<h*w;i++){ v.push_back({x[i],y[i]}); tree1.update(i,x[i]); tree2.update(i,y[i]); } } int swap_seats(int a,int b){ tree1.update(a,v[b].first); tree2.update(a,v[b].second); tree1.update(b,v[a].first); tree2.update(b,v[a].second); swap(v[a],v[b]); int ans=0; for(int i=0;i<h*w;i++){ auto tmp=tree1.get(0,i); int l=tmp.first; int r=tmp.second; tmp=tree2.get(0,i); int u=tmp.first; int d=tmp.second; if((r-l+1)*(d-u+1)==i+1)ans++; else i=max(i,(r-l+1)*(d-u+1)-2); } return ans; }

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

seats.cpp: In member function 'int node::getmn(int, int)':
seats.cpp:23:3: warning: no return statement in function returning non-void [-Wreturn-type]
   23 |   }
      |   ^
seats.cpp: In member function 'int node::getmx(int, int)':
seats.cpp:30:3: warning: no return statement in function returning non-void [-Wreturn-type]
   30 |   }
      |   ^
seats.cpp: In member function 'void node::build()':
seats.cpp:36:20: error: no matching function for call to 'std::vector<int>::assign(int)'
   36 |     mn.assign(20001);
      |                    ^
In file included from /usr/include/c++/9/vector:67,
                 from seats.h:3,
                 from seats.cpp:1:
/usr/include/c++/9/bits/stl_vector.h:746:7: note: candidate: 'void std::vector<_Tp, _Alloc>::assign(std::vector<_Tp, _Alloc>::size_type, const value_type&) [with _Tp = int; _Alloc = std::allocator<int>; std::vector<_Tp, _Alloc>::size_type = long unsigned int; std::vector<_Tp, _Alloc>::value_type = int]'
  746 |       assign(size_type __n, const value_type& __val)
      |       ^~~~~~
/usr/include/c++/9/bits/stl_vector.h:746:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/9/bits/stl_vector.h:765:2: note: candidate: 'template<class _InputIterator, class> void std::vector<_Tp, _Alloc>::assign(_InputIterator, _InputIterator) [with _InputIterator = _InputIterator; <template-parameter-2-2> = <template-parameter-1-2>; _Tp = int; _Alloc = std::allocator<int>]'
  765 |  assign(_InputIterator __first, _InputIterator __last)
      |  ^~~~~~
/usr/include/c++/9/bits/stl_vector.h:765:2: note:   template argument deduction/substitution failed:
seats.cpp:36:20: note:   candidate expects 2 arguments, 1 provided
   36 |     mn.assign(20001);
      |                    ^
In file included from /usr/include/c++/9/vector:67,
                 from seats.h:3,
                 from seats.cpp:1:
/usr/include/c++/9/bits/stl_vector.h:791:7: note: candidate: 'void std::vector<_Tp, _Alloc>::assign(std::initializer_list<_Tp>) [with _Tp = int; _Alloc = std::allocator<int>]'
  791 |       assign(initializer_list<value_type> __l)
      |       ^~~~~~
/usr/include/c++/9/bits/stl_vector.h:791:43: note:   no known conversion for argument 1 from 'int' to 'std::initializer_list<int>'
  791 |       assign(initializer_list<value_type> __l)
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
seats.cpp:37:20: error: no matching function for call to 'std::vector<int>::assign(int)'
   37 |     mn.assign(20001);
      |                    ^
In file included from /usr/include/c++/9/vector:67,
                 from seats.h:3,
                 from seats.cpp:1:
/usr/include/c++/9/bits/stl_vector.h:746:7: note: candidate: 'void std::vector<_Tp, _Alloc>::assign(std::vector<_Tp, _Alloc>::size_type, const value_type&) [with _Tp = int; _Alloc = std::allocator<int>; std::vector<_Tp, _Alloc>::size_type = long unsigned int; std::vector<_Tp, _Alloc>::value_type = int]'
  746 |       assign(size_type __n, const value_type& __val)
      |       ^~~~~~
/usr/include/c++/9/bits/stl_vector.h:746:7: note:   candidate expects 2 arguments, 1 provided
/usr/include/c++/9/bits/stl_vector.h:765:2: note: candidate: 'template<class _InputIterator, class> void std::vector<_Tp, _Alloc>::assign(_InputIterator, _InputIterator) [with _InputIterator = _InputIterator; <template-parameter-2-2> = <template-parameter-1-2>; _Tp = int; _Alloc = std::allocator<int>]'
  765 |  assign(_InputIterator __first, _InputIterator __last)
      |  ^~~~~~
/usr/include/c++/9/bits/stl_vector.h:765:2: note:   template argument deduction/substitution failed:
seats.cpp:37:20: note:   candidate expects 2 arguments, 1 provided
   37 |     mn.assign(20001);
      |                    ^
In file included from /usr/include/c++/9/vector:67,
                 from seats.h:3,
                 from seats.cpp:1:
/usr/include/c++/9/bits/stl_vector.h:791:7: note: candidate: 'void std::vector<_Tp, _Alloc>::assign(std::initializer_list<_Tp>) [with _Tp = int; _Alloc = std::allocator<int>]'
  791 |       assign(initializer_list<value_type> __l)
      |       ^~~~~~
/usr/include/c++/9/bits/stl_vector.h:791:43: note:   no known conversion for argument 1 from 'int' to 'std::initializer_list<int>'
  791 |       assign(initializer_list<value_type> __l)
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~