제출 #1035603

#제출 시각아이디문제언어결과실행 시간메모리
1035603AbitoArranging Shoes (IOI19_shoes)C++17
50 / 100
1097 ms6092 KiB
#include "shoes.h" #include <bits/stdc++.h> #define int long long #define pb push_back #define elif else if #define F first #define S second using namespace std; const int N=3e5+5; int a[N],n; char b[N]; bool vis[N]; int count_swaps(vector<int32_t> v){ n=v.size(); for (int i=1;i<=n;i++){ a[i]=v[i-1]; if (a[i]<0) b[i]='L'; else b[i]='R'; } vector<pair<int,int>> c; for (int i=1;i<=n;i++){ if (vis[i] || a[i]>0) continue; for (int j=1;j<=n;j++){ if (vis[j] || a[j]!=-a[i]) continue; vis[i]=vis[j]=1; c.pb({i,j}); break; } } int ans=0; for (auto u:c) ans+=u.F+u.S-bool(u.F<u.S); //cout<<ans<<e ans-=n/2*(n/2+1); //cout<<ans<<endl; for (int i=0;i<c.size();i++){ int l1=min(c[i].F,c[i].S),r1=max(c[i].F,c[i].S); for (int j=i+1;j<c.size();j++){ int l2=min(c[j].F,c[j].S),r2=max(c[j].F,c[j].S); int l3=max(l1,l2),r3=min(r1,r2); //cout<<l1<<' '<<r1<<' '<<l2<<' '<<r2<<' '<<l3<<' '<<r3<<endl; if (l3>r3) ans-=2; elif (l3==l1 && r3==r1); elif (l3==l2 && r3==r2); else ans--; } }return ans; }

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

shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:35:19: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   35 |     for (int i=0;i<c.size();i++){
      |                  ~^~~~~~~~~
shoes.cpp:37:25: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |         for (int j=i+1;j<c.size();j++){
      |                        ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...