提出 #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 |
| 結果 |
|
|
| セット名 |
テストケース |
| 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 |