139152025-01-09 10:30:14mateTáblajátékcpp17Hibás válasz 22/502ms548 KiB
#include <bits/stdc++.h>
using namespace std;

void oszlopno(string& s){
	int j = -1;
	for(int i = s.length()-1; i >= 0; i--){
		if(s[i] == '0'){
			j = i;
			s[j] = '1';
			break;
		}
	}
	if(j == -1){
		s = '1' + s;
	}
	//cout << s << ' ';
	for(int i = s.length()-1; i > j+1; i--){
		s[i] = '0';
	}
	//cout << s << '\n';
}

void oszlopbal(string& s){
	int j = -1;
	s = s + '0';
	/*if(s[0] == '1'){
		s = '1' + s;
		return;
	}
	for(int i = 1; i < s.length(); i--){
		if(s[i] == '1'){
			j = i;
			s[j-1] = '0';
			break;
		}
	}*/
	//cout << s << '\n';
}

void oszlopjobb(string& s){
	int j = -1;
	if(s[0] == '1'){
		s = '1' + s;
		return;
	}
	for(int i = 1; i < s.length(); i--){
		if(s[i] == '1'){
			j = i;
			s[j-1] = '0';
			break;
		}
	}
	oszlopno(s);
	//cout << s << '\n';
}

void oszlopcsokk(string& s){
	s[s.length()-1] = '0';
	int j = 0;
	while(s[j] != '1'){
		j++;
	}
	s = s.substr(0,s.length()-1);
	//s[j] = '0';
	//cout << s << '\n';
}

void oszlopmin1(string& s){
	int j = -1;
	for(int i = s.length()-1; i >= 0; i--){
		if(s[i] == '1'){
			j = i;
			s[j] = '0';
			break;
		}
	}
	if(j == -1){
		s = '0' + s;
	}
	//cout << s << ' ';
	for(int i = s.length()-1; i > j+1; i--){
		s[i] = '1';
	}
	//cout << s << '\n';

}

int main() {
	int n; cin >> n;
	int sor = 0;
	string oszlop = "0";
	while(n--){
		int a; cin >> a;
		if(a == 0){
			sor++;
			oszlopbal(oszlop);
		}
		if(a == 1){
			sor++;
			oszlopjobb(oszlop);
		}
		if(a == 2){
			sor--;
			oszlopcsokk(oszlop);
		}
		if(a == 3){
			oszlopmin1(oszlop);
		}
		if(a == 4){
			oszlopno(oszlop);
		}
		cerr << oszlop << ' ';
	}
	cout << sor << '\n';
	int l = 0;
	for(int i = 0; i < oszlop.length(); i++){
		if(oszlop[i] == '1'){
			l = 1;
		}
		if(l == 1){
			cout << oszlop[i];
		}
	}
	if(l == 0){
		cout << 0;
	}
	
	
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base22/50
1Elfogadva0/01ms316 KiB
2Hibás válasz0/01ms328 KiB
3Elfogadva3/31ms316 KiB
4Elfogadva3/31ms316 KiB
5Részben helyes1/31ms316 KiB
6Részben helyes1/31ms316 KiB
7Részben helyes1/31ms356 KiB
8Részben helyes1/31ms548 KiB
9Részben helyes1/31ms316 KiB
10Részben helyes1/31ms316 KiB
11Részben helyes1/31ms316 KiB
12Részben helyes1/31ms404 KiB
13Részben helyes1/41ms508 KiB
14Részben helyes1/41ms508 KiB
15Részben helyes1/41ms316 KiB
16Részben helyes1/42ms316 KiB
17Elfogadva4/41ms316 KiB