https://www.acmicpc.net/problem/1244
๋ฌธ์
1๋ถํฐ ์ฐ์์ ์ผ๋ก ๋ฒํธ๊ฐ ๋ถ์ด์๋ ์ค์์น๋ค์ด ์๋ค. ์ค์์น๋ ์ผ์ ธ ์๊ฑฐ๋ ๊บผ์ ธ์๋ ์ํ์ด๋ค. <๊ทธ๋ฆผ 1>์ ์ค์์น 8๊ฐ์ ์ํ๊ฐ ํ์๋์ด ์๋ค. ‘1’์ ์ค์์น๊ฐ ์ผ์ ธ ์์์, ‘0’์ ๊บผ์ ธ ์์์ ๋ํ๋ธ๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ ๋ช ๋ช ์ ๋ฝ์์, ํ์๋ค์๊ฒ 1 ์ด์์ด๊ณ ์ค์์น ๊ฐ์ ์ดํ์ธ ์์ฐ์๋ฅผ ํ๋์ฉ ๋๋์ด์ฃผ์๋ค. ํ์๋ค์ ์์ ์ ์ฑ๋ณ๊ณผ ๋ฐ์ ์์ ๋ฐ๋ผ ์๋์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ค์์น๋ฅผ ์กฐ์ํ๊ฒ ๋๋ค.
๋จํ์์ ์ค์์น ๋ฒํธ๊ฐ ์๊ธฐ๊ฐ ๋ฐ์ ์์ ๋ฐฐ์์ด๋ฉด, ๊ทธ ์ค์์น์ ์ํ๋ฅผ ๋ฐ๊พผ๋ค. ์ฆ, ์ค์์น๊ฐ ์ผ์ ธ ์์ผ๋ฉด ๋๊ณ , ๊บผ์ ธ ์์ผ๋ฉด ์ผ ๋ค. <๊ทธ๋ฆผ 1>๊ณผ ๊ฐ์ ์ํ์์ ๋จํ์์ด 3์ ๋ฐ์๋ค๋ฉด, ์ด ํ์์ <๊ทธ๋ฆผ 2>์ ๊ฐ์ด 3๋ฒ, 6๋ฒ ์ค์์น์ ์ํ๋ฅผ ๋ฐ๊พผ๋ค.
์ฌํ์์ ์๊ธฐ๊ฐ ๋ฐ์ ์์ ๊ฐ์ ๋ฒํธ๊ฐ ๋ถ์ ์ค์์น๋ฅผ ์ค์ฌ์ผ๋ก ์ข์ฐ๊ฐ ๋์นญ์ด๋ฉด์ ๊ฐ์ฅ ๋ง์ ์ค์์น๋ฅผ ํฌํจํ๋ ๊ตฌ๊ฐ์ ์ฐพ์์, ๊ทธ ๊ตฌ๊ฐ์ ์ํ ์ค์์น์ ์ํ๋ฅผ ๋ชจ๋ ๋ฐ๊พผ๋ค. ์ด๋ ๊ตฌ๊ฐ์ ์ํ ์ค์์น ๊ฐ์๋ ํญ์ ํ์๊ฐ ๋๋ค.
์ค์์น ๋ฒํธ์ค์์น ์ํโ | โก | โข | โฃ | โค | โฅ | โฆ | โง |
0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 |
<๊ทธ๋ฆผ 1>
์๋ฅผ ๋ค์ด <๊ทธ๋ฆผ 2>์์ ์ฌํ์์ด 3์ ๋ฐ์๋ค๋ฉด, 3๋ฒ ์ค์์น๋ฅผ ์ค์ฌ์ผ๋ก 2๋ฒ, 4๋ฒ ์ค์์น์ ์ํ๊ฐ ๊ฐ๊ณ 1๋ฒ, 5๋ฒ ์ค์์น์ ์ํ๊ฐ ๊ฐ์ผ๋ฏ๋ก, <๊ทธ๋ฆผ 3>๊ณผ ๊ฐ์ด 1๋ฒ๋ถํฐ 5๋ฒ๊น์ง ์ค์์น์ ์ํ๋ฅผ ๋ชจ๋ ๋ฐ๊พผ๋ค. ๋ง์ฝ <๊ทธ๋ฆผ 2>์์ ์ฌํ์์ด 4๋ฅผ ๋ฐ์๋ค๋ฉด, 3๋ฒ, 5๋ฒ ์ค์์น์ ์ํ๊ฐ ์๋ก ๋ค๋ฅด๋ฏ๋ก 4๋ฒ ์ค์์น์ ์ํ๋ง ๋ฐ๊พผ๋ค.
์ค์์น ๋ฒํธ์ค์์น ์ํโ | โก | โข | โฃ | โค | โฅ | โฆ | โง |
0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 |
<๊ทธ๋ฆผ 2>
์ค์์น ๋ฒํธ์ค์์น ์ํโ | โก | โข | โฃ | โค | โฅ | โฆ | โง |
1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 |
<๊ทธ๋ฆผ 3>
์ ๋ ฅ์ผ๋ก ์ค์์น๋ค์ ์ฒ์ ์ํ๊ฐ ์ฃผ์ด์ง๊ณ , ๊ฐ ํ์์ ์ฑ๋ณ๊ณผ ๋ฐ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ํ์๋ค์ ์ ๋ ฅ๋๋ ์์๋๋ก ์๊ธฐ์ ์ฑ๋ณ๊ณผ ๋ฐ์ ์์ ๋ฐ๋ผ ์ค์์น์ ์ํ๋ฅผ ๋ฐ๊พธ์์ ๋, ์ค์์น๋ค์ ๋ง์ง๋ง ์ํ๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์๋ ์ค์์น ๊ฐ์๊ฐ ์ฃผ์ด์ง๋ค. ์ค์์น ๊ฐ์๋ 100 ์ดํ์ธ ์์ ์ ์์ด๋ค. ๋์งธ ์ค์๋ ๊ฐ ์ค์์น์ ์ํ๊ฐ ์ฃผ์ด์ง๋ค. ์ผ์ ธ ์์ผ๋ฉด 1, ๊บผ์ ธ์์ผ๋ฉด 0์ด๋ผ๊ณ ํ์ํ๊ณ ์ฌ์ด์ ๋น์นธ์ด ํ๋์ฉ ์๋ค. ์ ์งธ ์ค์๋ ํ์์๊ฐ ์ฃผ์ด์ง๋ค. ํ์์๋ 100 ์ดํ์ธ ์์ ์ ์์ด๋ค. ๋ท์งธ ์ค๋ถํฐ ๋ง์ง๋ง ์ค๊น์ง ํ ์ค์ ํ ํ์์ ์ฑ๋ณ, ํ์์ด ๋ฐ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ๋จํ์์ 1๋ก, ์ฌํ์์ 2๋ก ํ์ํ๊ณ , ํ์์ด ๋ฐ์ ์๋ ์ค์์น ๊ฐ์ ์ดํ์ธ ์์ ์ ์์ด๋ค. ํ์์ ์ฑ๋ณ๊ณผ ๋ฐ์ ์ ์ฌ์ด์ ๋น์นธ์ด ํ๋์ฉ ์๋ค.
์ถ๋ ฅ
์ค์์น์ ์ํ๋ฅผ 1๋ฒ ์ค์์น์์ ์์ํ์ฌ ๋ง์ง๋ง ์ค์์น๊น์ง ํ ์ค์ 20๊ฐ์ฉ ์ถ๋ ฅํ๋ค. ์๋ฅผ ๋ค์ด 21๋ฒ ์ค์์น๊ฐ ์๋ค๋ฉด ์ด ์ค์์น์ ์ํ๋ ๋์งธ ์ค ๋งจ ์์ ์ถ๋ ฅํ๋ค. ์ผ์ง ์ค์์น๋ 1, ๊บผ์ง ์ค์์น๋ 0์ผ๋ก ํ์ํ๊ณ , ์ค์์น ์ํ ์ฌ์ด์ ๋น์นธ์ ํ๋์ฉ ๋๋ค.
ํ์ด
// Authored by : seondal
// Co-authored by : -
// #include <bits/stdc++.h>
#include <iostream>
#include <vector>
using namespace std;
int n;
vector<int> swit;
void toggle(int index) {
swit[index] = !swit[index];
return;
}
void boy(int num) {
for(int i=1; i<=n; i++)
if(i%num == 0)
toggle(i);
return;
}
void girl(int num) {
toggle(num); // ์ค์์ ๋ฌด์กฐ๊ฑด ๋ฐ๊พผ๋ค
for(int i=1; true; i++) {
int left = num-i;
int right = num+i;
if(left < 1 || right > n || swit[left] != swit[right])
return; // ์ธ๋ฑ์ค๋ฅผ ๋์ด์๊ฑฐ๋ ๋์นญ์ด ์๋๋ผ๋ฉด ์ข
๋ฃ
toggle(left);
toggle(right);
}
}
void solution(int gender, int number) {
if(gender==1)
boy(number);
else
girl(number);
return;
}
int main() {
ios_base :: sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
// ์
๋ ฅ
cin >> n;
swit.assign(n+1, 0);
for(int i=1; i<=n; i++)
cin >> swit[i];
// ํ์ด
int m;
cin >> m;
while(m--) {
int gender, number;
cin >> gender >> number;
solution(gender, number);
}
// ์ถ๋ ฅ
for(int i=1; i<=n; i++) {
cout << swit[i] << " ";
if(i%20 == 0)
cout << "\n";
}
return 0;
}
/*
*/
'๐ฒ Altu-Bitu > ๊ตฌํ&์๋ฎฌ๋ ์ด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ S2][C++] ๋ฐฑ์ค 18111๋ฒ: ๋ง์ธํฌ๋ํํธ (0) | 2022.11.17 |
---|---|
[BOJ S2][C++] ๋ฐฑ์ค 3085๋ฒ: ์ฌํ ๊ฒ์ (0) | 2022.11.07 |
[BOJ S3][C++] ๋ฐฑ์ค 2503๋ฒ: ์ซ์ ์ผ๊ตฌ (2%, 4%) (0) | 2022.10.06 |
[BOJ G5][C++] ๋ฐฑ์ค 20055๋ฒ: ์ปจ๋ฒ ์ด์ด ๋ฒจํธ ์์ ๋ก๋ด (0) | 2022.10.03 |
[BOJ S1][C++] ๋ฐฑ์ค 20923๋ฒ: ์ซ์ ํ ๋ฆฌ๊ฐ๋ฆฌ ๊ฒ์ (0) | 2022.09.30 |