提出 #23017081


ソースコード 拡げる

#include<bits/stdc++.h>
#include<atcoder/all>
#define rep(i,a,b) for(int i=a;i<b;i++)
#define rrep(i,a,b) for(int i=a;i>=b;i--)
#define fore(i,a) for(auto &i:a)
#define all(x) (x).begin(),(x).end()
//#pragma GCC optimize ("-O3")
using namespace std;
using namespace atcoder;
using mint = modint1000000007;
void _main(); int main() { cin.tie(0); ios::sync_with_stdio(false); _main(); }
typedef long long ll; const int inf = INT_MAX / 2; const ll infl = 1LL << 62;const ll MOD = 1e9+7;const double PI=3.14159265358979323846;
template<class T>bool chmax(T& a, const T& b) { if (a < b) { a = b; return 1; } return 0; }
template<class T>bool chmin(T& a, const T& b) { if (b < a) { a = b; return 1; } return 0; }
//---------------------------------------------------------------------------------------------------

void _main(){
  ll N; cin >> N;
  vector<ll> vecR,vecG,vecB,vec;
  ll a;
  char c;
  rep(i,0,2*N) {
    cin >> a;
    cin >> c;
    if (c == 'R') vecR.push_back(a);
    if (c == 'G') vecG.push_back(a);
    if (c == 'B') vecB.push_back(a);
  }
  sort(all(vecR));
  sort(all(vecG));
  sort(all(vecB));
  if (vecR.size()%2 == 0 && vecG.size()%2 == 0 && vecB.size()%2 == 0) {
    cout << 0 << endl;
    return;
  }
  if (vecR.size()%2 == 1 && vecG.size()%2 == 1) {
    ll ans=infl;
    rep(i,0,vecR.size()) {
      int k = lower_bound(all(vecG),vecR[i]) - vecG.begin();
      chmin(ans,abs(vecG[k]-vecR[i]));
      if (k != 0) {
        chmin(ans,abs(vecG[k-1]-vecR[i]));
      }
    }
    if (vecB.size() != 0) {
      ll ans1=infl;
      rep(i,0,vecG.size()) {
        int k = lower_bound(all(vecB),vecG[i]) - vecB.begin();
        chmin(ans1,abs(vecB[k]-vecG[i]));
        if (k != 0) {
          chmin(ans1,abs(vecB[k-1]-vecG[i]));
        }
      }
      ll ans2=infl;
      rep(i,0,vecR.size()) {
        int k = lower_bound(all(vecB),vecR[i]) - vecB.begin();
        chmin(ans2,abs(vecB[k]-vecR[i]));
        if (k != 0) {
          chmin(ans2,abs(vecB[k-1]-vecR[i]));
        }
      }
      cout << min(ans,ans1+ans2) << endl;
    } else {
      cout << ans << endl;
    }
  }
  if (vecR.size()%2 == 1 && vecB.size()%2 == 1) {
    ll ans=infl;
    rep(i,0,vecR.size()) {
      int k = lower_bound(all(vecB),vecR[i]) - vecB.begin();
      chmin(ans,abs(vecB[k]-vecR[i]));
      if (k != 0) {
        chmin(ans,abs(vecB[k-1]-vecR[i]));
      }
    }
    if (vecG.size() != 0) {
      ll ans1=infl;
      rep(i,0,vecG.size()) {
        int k = lower_bound(all(vecB),vecG[i]) - vecB.begin();
        chmin(ans1,abs(vecB[k]-vecG[i]));
        if (k != 0) {
          chmin(ans1,abs(vecB[k-1]-vecG[i]));
        }
      }
      ll ans2=infl;
      rep(i,0,vecG.size()) {
        int k = lower_bound(all(vecR),vecG[i]) - vecR.begin();
        chmin(ans2,abs(vecR[k]-vecG[i]));
        if (k != 0) {
          chmin(ans2,abs(vecR[k-1]-vecG[i]));
        }
      }
      cout << min(ans,ans1+ans2) << endl;
    } else {
      cout << ans << endl;
    }
  }
  if (vecG.size()%2 == 1 && vecB.size()%2 == 1) {
    ll ans=infl;
    rep(i,0,vecG.size()) {
      int k = lower_bound(all(vecB),vecG[i]) - vecB.begin();
      chmin(ans,abs(vecB[k]-vecG[i]));
      if (k != 0) {
        chmin(ans,abs(vecB[k-1]-vecG[i]));
      }
    }
    if (vecR.size() != 0) {
      ll ans1=infl;
      rep(i,0,vecR.size()) {
        int k = lower_bound(all(vecB),vecR[i]) - vecB.begin();
        chmin(ans1,abs(vecB[k]-vecR[i]));
        if (k != 0) {
          chmin(ans1,abs(vecB[k-1]-vecR[i]));
        }
      }
      ll ans2=infl;
      rep(i,0,vecR.size()) {
        int k = lower_bound(all(vecG),vecR[i]) - vecG.begin();
        chmin(ans2,abs(vecG[k]-vecR[i]));
        if (k != 0) {
          chmin(ans2,abs(vecG[k-1]-vecR[i]));
        }
      }
      cout << min(ans,ans1+ans2) << endl;
    } else {
      cout << ans << endl;
    }
  }
}

提出情報

提出日時
問題 B - RGB Matching
ユーザ enbuta
言語 C++ (GCC 9.2.1)
得点 500
コード長 3963 Byte
結果 AC
実行時間 58 ms
メモリ 5824 KiB

コンパイルエラー

./Main.cpp: In function ‘void _main()’:
./Main.cpp:3:33: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<long long int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
    3 | #define rep(i,a,b) for(int i=a;i<b;i++)
......
   38 |     rep(i,0,vecR.size()) {
      |         ~~~~~~~~~~~~~~~          
./Main.cpp:38:5: note: in expansion of macro ‘rep’
   38 |     rep(i,0,vecR.size()) {
      |     ^~~
./Main.cpp:3:33: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<long long int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
    3 | #define rep(i,a,b) for(int i=a;i<b;i++)
......
   47 |       rep(i,0,vecG.size()) {
      |           ~~~~~~~~~~~~~~~        
./Main.cpp:47:7: note: in expansion of macro ‘rep’
   47 |       rep(i,0,vecG.size()) {
      |       ^~~
./Main.cpp:3:33: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<long long int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
    3 | #define rep(i,a,b) for(int i=a;i<b;i++)
......
   55 |       rep(i,0,vecR.size()) {
      |           ~~~~~~~~~~~~~~~        
./Main.cpp:55:7: note: in expansion of macro ‘rep’
   55 |       rep(i,0,vecR.size()) {
      |       ^~~
./Main.cpp:3:33: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<long long int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
    3 | #define rep(i,a,b) for(int i=a;i<b;i++)
......
   69 |     rep(i,0,vecR.size()) {
      |         ~~~~~~~~~~~~~~~          
./Main.cpp:69:5: note: in expansion of macro ‘rep’
   69 |     rep(i,0,vecR.size()) {
      |     ^~~
./Main.cpp:3:33: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<long long int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
    3 | #define rep(i,a,b) for(int i=a;i<b;i++)
......
   78 |       rep(i,0,vecG.size()) ...

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 500 / 500
結果
AC × 3
AC × 82
セット名 テストケース
Sample sample_01.txt, sample_02.txt, sample_03.txt
All hand_01.txt, hand_02.txt, hand_03.txt, hand_04.txt, random2_01.txt, random2_02.txt, random2_03.txt, random2_04.txt, random2_05.txt, random2_06.txt, random2_07.txt, random2_08.txt, random2_09.txt, random2_10.txt, random2_11.txt, random2_12.txt, random2_13.txt, random2_14.txt, random2_15.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, random_26.txt, random_27.txt, random_28.txt, random_29.txt, random_30.txt, random_31.txt, random_32.txt, random_33.txt, random_34.txt, random_35.txt, random_36.txt, random_37.txt, random_38.txt, random_39.txt, random_40.txt, random_41.txt, random_42.txt, random_43.txt, random_44.txt, random_45.txt, random_46.txt, random_47.txt, random_48.txt, random_49.txt, random_50.txt, random_51.txt, random_52.txt, random_53.txt, random_54.txt, random_55.txt, random_56.txt, random_57.txt, random_58.txt, random_59.txt, random_60.txt, sample_01.txt, sample_02.txt, sample_03.txt
ケース名 結果 実行時間 メモリ
hand_01.txt AC 27 ms 4224 KiB
hand_02.txt AC 24 ms 4116 KiB
hand_03.txt AC 26 ms 4184 KiB
hand_04.txt AC 30 ms 4220 KiB
random2_01.txt AC 52 ms 5472 KiB
random2_02.txt AC 52 ms 5460 KiB
random2_03.txt AC 52 ms 5480 KiB
random2_04.txt AC 50 ms 5236 KiB
random2_05.txt AC 55 ms 5452 KiB
random2_06.txt AC 10 ms 3712 KiB
random2_07.txt AC 16 ms 3916 KiB
random2_08.txt AC 29 ms 4032 KiB
random2_09.txt AC 48 ms 4856 KiB
random2_10.txt AC 24 ms 4076 KiB
random2_11.txt AC 2 ms 3628 KiB
random2_12.txt AC 2 ms 3684 KiB
random2_13.txt AC 2 ms 3596 KiB
random2_14.txt AC 2 ms 3604 KiB
random2_15.txt AC 2 ms 3596 KiB
random_01.txt AC 52 ms 5300 KiB
random_02.txt AC 57 ms 5408 KiB
random_03.txt AC 48 ms 5284 KiB
random_04.txt AC 58 ms 5224 KiB
random_05.txt AC 49 ms 5296 KiB
random_06.txt AC 57 ms 5412 KiB
random_07.txt AC 58 ms 5348 KiB
random_08.txt AC 54 ms 5228 KiB
random_09.txt AC 56 ms 5228 KiB
random_10.txt AC 57 ms 5308 KiB
random_11.txt AC 56 ms 5472 KiB
random_12.txt AC 57 ms 5484 KiB
random_13.txt AC 54 ms 5424 KiB
random_14.txt AC 49 ms 5460 KiB
random_15.txt AC 58 ms 5824 KiB
random_16.txt AC 56 ms 5296 KiB
random_17.txt AC 57 ms 5284 KiB
random_18.txt AC 56 ms 5244 KiB
random_19.txt AC 57 ms 5504 KiB
random_20.txt AC 55 ms 5220 KiB
random_21.txt AC 17 ms 3768 KiB
random_22.txt AC 7 ms 3772 KiB
random_23.txt AC 19 ms 3788 KiB
random_24.txt AC 36 ms 3892 KiB
random_25.txt AC 17 ms 3900 KiB
random_26.txt AC 22 ms 3976 KiB
random_27.txt AC 19 ms 3824 KiB
random_28.txt AC 47 ms 4372 KiB
random_29.txt AC 52 ms 4772 KiB
random_30.txt AC 43 ms 4504 KiB
random_31.txt AC 36 ms 4480 KiB
random_32.txt AC 26 ms 4108 KiB
random_33.txt AC 16 ms 3936 KiB
random_34.txt AC 14 ms 3708 KiB
random_35.txt AC 23 ms 4092 KiB
random_36.txt AC 46 ms 4548 KiB
random_37.txt AC 37 ms 4488 KiB
random_38.txt AC 32 ms 4056 KiB
random_39.txt AC 35 ms 4480 KiB
random_40.txt AC 45 ms 4556 KiB
random_41.txt AC 2 ms 3648 KiB
random_42.txt AC 2 ms 3592 KiB
random_43.txt AC 2 ms 3612 KiB
random_44.txt AC 2 ms 3572 KiB
random_45.txt AC 3 ms 3676 KiB
random_46.txt AC 3 ms 3660 KiB
random_47.txt AC 2 ms 3592 KiB
random_48.txt AC 2 ms 3608 KiB
random_49.txt AC 2 ms 3540 KiB
random_50.txt AC 3 ms 3616 KiB
random_51.txt AC 2 ms 3636 KiB
random_52.txt AC 2 ms 3664 KiB
random_53.txt AC 2 ms 3648 KiB
random_54.txt AC 2 ms 3496 KiB
random_55.txt AC 2 ms 3624 KiB
random_56.txt AC 2 ms 3648 KiB
random_57.txt AC 2 ms 3584 KiB
random_58.txt AC 2 ms 3628 KiB
random_59.txt AC 2 ms 3592 KiB
random_60.txt AC 2 ms 3640 KiB
sample_01.txt AC 2 ms 3632 KiB
sample_02.txt AC 2 ms 3516 KiB
sample_03.txt AC 2 ms 3640 KiB