Submission #62793992


Source Code Expand

Copy
#include<iostream>
#include<iomanip>
#include<cmath>
#include<climits>
#include<vector>
#include<string>
#include<algorithm>
#include<map>
#include<set>
#include<stack>
#include<numeric>
#include<queue>
#include<bitset>
#include<unordered_map>
#include<unordered_set>
#include<limits>
#include<cassert>
#include<ranges>
using namespace std;
#define MOD 998244353
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#include<iostream>
#include<iomanip>
#include<cmath>
#include<climits>
#include<vector>
#include<string>
#include<algorithm>
#include<map>
#include<set>
#include<stack>
#include<numeric>
#include<queue>
#include<bitset>
#include<unordered_map>
#include<unordered_set>
#include<limits>
#include<cassert>
#include<ranges>
using namespace std;
#define MOD 998244353


int main(){
	int n;
	string s;
	cin>>n>>s;
	
	int cnt=0;
	vector<long long> ruil(n),ruir(n);
	if(s[0]=='1') cnt++;
	for(int i=1;i<n;++i){
		if(s[i]=='1'){
			cnt++;
			ruil[i]=ruil[i-1];
		}else{
			ruil[i]=ruil[i-1]+cnt;
		}
	}

	cnt=0;
	if(s[n-1]=='1') cnt++;
	for(int i=n-2;i>=0;--i){
		if(s[i]=='1'){
			cnt++;
			ruir[i] = ruir[i+1];
		}else{
			ruir[i] = ruir[i+1]+cnt;
		}
	}

/*
	cout<<"   ";
	for(auto e:ruil) cout<<setw(2)<<e<<" ";
	cout<<endl;
	for(auto e:ruir) cout<<setw(2)<<e<<" ";
	cout<<endl;
*/

	vector<long long> ansl(n+1);
	long long ans=LLONG_MAX;
	ansl[0]=ruir[0];
	ansl[n]=ruil[n-1];
	ans=min({ans,ansl[0],ansl[n]});
	for(int i=1;i<n;++i){
		ansl[i] = ruil[i-1]+ruir[i];
		ans=min(ans,ansl[i]);
	}

	cout<<ans<<endl;


	//cout<<tmpp.size()<<endl;
	//cout<<*tmpp.begin()<<endl;

	//cout<<"Yes"<<endl;

	return 0;
}



















Submission Info

Submission Time
Task D - Swap to Gather
User oblivimint
Language C++ 20 (gcc 12.2)
Score 425
Code Size 1318 Byte
Status AC
Exec Time 16 ms
Memory 15716 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 425 / 425
Status
AC × 3
AC × 28
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 02_random2_00.txt, 02_random2_01.txt, 02_random2_02.txt, 02_random2_03.txt, 02_random2_04.txt, 02_random2_05.txt, 03_handmade_00.txt, 03_handmade_01.txt, 03_handmade_02.txt, 03_handmade_03.txt, 03_handmade_04.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 1 ms 3656 KB
00_sample_01.txt AC 1 ms 3488 KB
00_sample_02.txt AC 1 ms 3512 KB
01_random_00.txt AC 3 ms 5024 KB
01_random_01.txt AC 15 ms 14744 KB
01_random_02.txt AC 11 ms 11372 KB
01_random_03.txt AC 13 ms 15712 KB
01_random_04.txt AC 13 ms 15520 KB
01_random_05.txt AC 14 ms 15492 KB
01_random_06.txt AC 16 ms 15588 KB
01_random_07.txt AC 16 ms 15548 KB
01_random_08.txt AC 16 ms 15540 KB
01_random_09.txt AC 16 ms 15536 KB
01_random_10.txt AC 15 ms 15536 KB
01_random_11.txt AC 14 ms 15496 KB
01_random_12.txt AC 13 ms 15536 KB
01_random_13.txt AC 13 ms 15492 KB
02_random2_00.txt AC 13 ms 15588 KB
02_random2_01.txt AC 13 ms 15460 KB
02_random2_02.txt AC 13 ms 15716 KB
02_random2_03.txt AC 14 ms 15548 KB
02_random2_04.txt AC 13 ms 15616 KB
02_random2_05.txt AC 13 ms 15460 KB
03_handmade_00.txt AC 1 ms 3508 KB
03_handmade_01.txt AC 1 ms 3632 KB
03_handmade_02.txt AC 1 ms 3464 KB
03_handmade_03.txt AC 1 ms 3568 KB
03_handmade_04.txt AC 13 ms 15572 KB


2025-03-23 (Sun)
00:19:08 +00:00