# APCS 2025.01 by richardlaiis
Sorry, but I prefered programming in C, and this editorial is not finished yet. QwQ
題目連結請點題號 =w=
[Solution by banyewu](https://hackmd.io/@bangyewu/rJlvXNP81g?utm_source=preview-mode&utm_medium=rec)
## [Q1](https://zerojudge.tw/ShowProblem?problemid=q181)
你應該有做出來。
```cpp!
#include <stdio.h>
int main() {
int a, b, n, sum = 0;
scanf("%d%d%d", &a, &b, &n);
int cyclet = a+b;
for(int i = 0; i < n; i++) {
int t;
scanf("%d", &t);
if(t%cyclet >= a) sum += cyclet-t%cyclet;
}
printf("%d\n", sum);
}
```
## [Q2](https://zerojudge.tw/ShowProblem?problemid=q182)
要開一個字串/字元陣列去紀錄**當前**的字串,剩餘的維護相當簡單
```cpp!
#include <stdio.h>
#include <string.h>
int main() {
char input[105];
scanf("%s", input);
int len = strlen(input);
int k;
scanf("%d", &k);
char ans[105];
char prev[105];
strcpy(prev, input);
while(k--) {
int op;
scanf("%d", &op);
if(op == 0) {
for(int i = 0; i <= len-2; i+=2) {
ans[i] = prev[i+1];
ans[i+1] = prev[i];
}
}else if(op == 1) {
for(int i = 0; i <= len-2; i+=2) {
if(prev[i]-prev[i+1] > 0) {
ans[i] = prev[i+1];
ans[i+1] = prev[i];
}else {
ans[i] = prev[i];
ans[i+1] = prev[i+1];
}
}
}else {
int j = 0;
for(int i = 0; i < len/2; i++) {
ans[j++] = prev[i];
ans[j++] = prev[i+len/2];
}
}
ans[len] = '\0';
strcpy(prev, ans);
}
printf("%s\n", ans);
}
```
### [Q3](https://zerojudge.tw/ShowProblem?problemid=q183)
#### 30% subtask $(n\le6)$
### [Q4](https://zerojudge.tw/ShowProblem?problemid=q184)