提出 #69930696
ソースコード 拡げる
// PriashisG
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
// Typedef
typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef tree<int, null_type, less<int>, rb_tree_tag,
tree_order_statistics_node_update> ordered_set;
typedef tree<pair<int,int>, null_type, less<pair<int,int>>, rb_tree_tag,
tree_order_statistics_node_update> ordered_multiset;
/*
greater<int> for large to small
less_equal for not unique
finding sz-th element --> os.find_by_order(sz); // O(log n)
finding the number of elements smaller than x --> os.order_by_szey(x); // O(log n)
os.erase(x);
*/
// Macros
#define PB push_back
#define IN insert
#define all(x) x.begin(), x.end()
#define trav(i, a) for (auto &i : a)
#define GCD __gcd
#define F first
#define S second
#define endl '\n'
#define LB lower_bound
#define UB upper_bound
#define DEBUG(i) cout << "DEBUG " << i << "\n";
#define FOR(i, a, b) for (int i = a; i < b; i++)
#define GT(x) greater<x>()
#define setpre(n) fixed << setprecision(n)
#define SZ(x) x.size()
// Functions
template <typename T> void pv(vector<T> &a){
for (T u : a) cout << u << ' ';
cout << '\n';
}
template <typename T> void pv2(vector<vector<T>> &a){
trav(aa, a) pv(aa);
}
template <typename T, typename U> void pvp( vector<pair<T, U>> &a){
trav(p, a) cout << "(" << p.F << ", " << p.S << ") ";
cout << '\n';
}
// Constants
const ll MOD7 = 1e9 + 7;
const ll MOD9 = 998244353;
const ll INF = LLONG_MAX;
// Custom Functions
void fast(){
ios::sync_with_stdio(false); cin.tie(0);
}
ll LCM(ll a, ll b){
return (a * b) / GCD(a, b);
}
// Custom Comparator
bool cmp(const pair<ll, ll>& x, const pair<ll, ll>& y){
if (x.F == y.F) return x.S > y.S;
else return x.F < y.F;
}
// Global Variables
void solve(ll tc){
int n;
string x;
cin >> n >> x;
string s = "#";
s += x;
vi zero(n + 1, 0), one(n + 1, 0);
for (int i = 1; i <= n; i++){
if (s[i] == '0') zero[i]++;
else one[i]++;
zero[i] += zero[i - 1];
one[i] += one[i - 1];
}
ll ans = INF;
int l = 1, r = 1;
while (l <= n){
while (r <= n && s[l] == s[r]) r++;
r--;
ll cnt0 = zero[l - 1] + zero[n] - zero[r];
ll cnt1 = one[l - 1] + one[n] - one[r];
if (s[l] == '0') ans = min(ans, cnt0 * 2 + cnt1);
else ans = min(ans, cnt1 * 2 + cnt0);
l = r + 1;
r = l;
}
cout << ans << '\n';
}
int main(void){
fast();
// precal();
// freopen("fenceplan.in", "r", stdin);
// freopen("fenceplan.out", "w", stdout);
ll t = 1;
int i = 1;
cin >> t;
for (ll i = 1; i <= t; i++)
solve(i);
}
提出情報
| 提出日時 |
|
| 問題 |
D - Pop and Insert |
| ユーザ |
priashisg |
| 言語 |
C++ 17 (gcc 12.2) |
| 得点 |
400 |
| コード長 |
3063 Byte |
| 結果 |
AC |
| 実行時間 |
12 ms |
| メモリ |
8128 KiB |
コンパイルエラー
Main.cpp: In function ‘void solve(ll)’:
Main.cpp:83:15: warning: unused parameter ‘tc’ [-Wunused-parameter]
83 | void solve(ll tc){
| ~~~^~
Main.cpp: In function ‘int main()’:
Main.cpp:129:9: warning: unused variable ‘i’ [-Wunused-variable]
129 | int i = 1;
| ^
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
400 / 400 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
00_sample_00.txt |
| All |
00_sample_00.txt, 01_small_00.txt, 02_random_00.txt, 02_random_01.txt, 02_random_02.txt, 02_random_03.txt, 02_random_04.txt, 02_random_05.txt, 02_random_06.txt, 03_handmade_00.txt, 03_handmade_01.txt, 03_handmade_02.txt, 03_handmade_03.txt, 03_handmade_04.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| 00_sample_00.txt |
AC |
1 ms |
3408 KiB |
| 01_small_00.txt |
AC |
12 ms |
3512 KiB |
| 02_random_00.txt |
AC |
3 ms |
3532 KiB |
| 02_random_01.txt |
AC |
3 ms |
3624 KiB |
| 02_random_02.txt |
AC |
4 ms |
4224 KiB |
| 02_random_03.txt |
AC |
5 ms |
8128 KiB |
| 02_random_04.txt |
AC |
5 ms |
8120 KiB |
| 02_random_05.txt |
AC |
6 ms |
8068 KiB |
| 02_random_06.txt |
AC |
5 ms |
8080 KiB |
| 03_handmade_00.txt |
AC |
5 ms |
8112 KiB |
| 03_handmade_01.txt |
AC |
5 ms |
8116 KiB |
| 03_handmade_02.txt |
AC |
6 ms |
8068 KiB |
| 03_handmade_03.txt |
AC |
5 ms |
8080 KiB |
| 03_handmade_04.txt |
AC |
5 ms |
8112 KiB |