# 程式設計
### printf()
- **printf(format string,item1,item2,...);**
- Formatted characters
- %c for char
- %d for int
- %f for double
- %s for string
- %e for 科學記號
- &m.nf m代表欄寬; n代表精準度
使用方式(印出一般的):
```cpp=
#include<iostream>
using namespace std;
int main() {
int a=10;
printf("顯示 %d 數字" , a);
/*
* 顯示 10 數字
*/
}
```
使用方式(印出%m.nf):
```cpp=
#include<iostream>
#include<iomanip> // for setprecision() , setw()
using namespace std;
int main(){
printf("%.1f , %.2f\n" , 1.234 , -1.235); // 四捨五入
}
```

### scanf()
- **scanf(format string,memory address);**
- Formatted characters
- %c for char
- %d for int
- %f for float , %If for double
- %s for string
使用方式:
```cpp=
#include<iostream>
using namespace std;
int main() {
int interger1 , interger2 , sum;
scanf("%d%d" , &interger1,&interger2); // == cin >> interger1 >> interger2;
/*
* & 為指向變數的記憶體位置(參照)
*/
sum = interger1 + interger2;
printf("%d\n" , sum);
}
```
### 參照
```cpp=
int n = 10; // 定義變數
int *p = &n; // 定義指標,儲存 n 的位址
int &r = n; // 定義參照,是 n 的別名
```
上面的程式中,最後一行定義參考,參考一定要初始,例如以下定義無法通過編譯:
```cpp=
int &r; // error: 'r' declared as reference but not initialized
```
下列程式碼把他想成 **我的b儲存的是a的記憶體位置,所以a變了b也會跟著變**
```cpp=
#include<iostream>
using namespace std;
int main() {
int a=10;
int &b = a;
cout << "a: " << a << endl;
cout << "b: " << b << endl;
a = 20;
cout << "a: " << a << endl;
cout << "b: " << b << endl;
/*
* a: 10
b: 10
a: 20
b: 20 */
}
```
### 萬用標題庫
為甚麼要使用這個標題庫? 你可以把他想成一個大總集,可以不必再去include其他標題。
優化執行速度:
```cpp=
ios::sync_with_stdio(0);
cin.tie(0);
```
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
}
```
實用技巧
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int k;
while(cin >> k && k) {
/*
* 意思為 輸入 k 然後判斷k
* 假設 k 等於 0 的話就直接結束程式
}
}
```
#### to_string() 用法
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
string s1 = "Hi you are good " + to_string(123); // 將不是字串的型態轉成字串
cout << s;
// Hi you are good 123
}
```
但今天假設沒有用 to_string() 的話
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
string s1 = "Hi you are good " + 123;
cout << s;
}
```
就會出錯因為字串是不能進行四則運算的

### Vector
#### 基本用法
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
vector<int> vec = {1,2,3,4,5}; // 定義 向量空間(vec) 裡面的數值為 {1,2,3,4,5}
vec.push_back(1); // 將數值丟到尾端 所以 vec 會變成 {1,2,3,4,5,6}
vec.pop_back(); // 將尾端資料刪除 所以 vec 會變成 {1,2,3,4,5}
int num = vec.szie() // 將變數 num 定義為 vec 的長度
for (int i = 0;i < num;i++) { // 將 vec 陣列裡面的資料印出
cout << vec[i] << " ";
} // 1 2 3 4 5
}
```
#### sort比較
vector sort 用法
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
vector<int> vec = {4,5,3,4,2,1}; // 定義 向量空間(vec) 裡面的數值為 {1,2,3,4,5}
sort(vec.begin() , vec.end()); // sort 需放入 頭端跟尾端的資料
for (int i = 0;i < vec.size();i++) {
cout << vec[i] << " ";
} // 1 2 3 4 4 5
}
```
array sort 用法
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int arr[5] = {4,5,3,1,7};
int len = sizeof(arr) / sizeof(int); // 計算陣列長度
sort(arr , arr+len);
for (int i = 0;i < len;i++) {
cout << arr[i] << " ";
} // 1 3 4 5 7
}
```
vector 的好處不必去計算陣列的長度可以直接調用 vec.end() 的尾端資料
#### for auto
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
vector<int> vec = {5,3,4,1,2};
for (auto it : vec) { // 想成將 vec 裡面的資料一一拉出來 放到 it 裡面
it += 100; // it 的數值從 105 -> 103 -> 104 -> 101 -> 102
// vec 內容並不會遭到修改
}
// 但這並沒有改變到 vec 裡面的數值
for (auto& it : vec) { // 加入參照的概念修改 vec 的記憶體位置
it += 100; // it 的數值從 105 -> 103 -> 104 -> 101 -> 102
// 但還會順便更改 vec 的內容
// vec 的數值變成 {105,103,104,101,102}
}
}
```
### lower_bound() & upper_bound()
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int arr[10] = { 10, 20, 30, 30, 30, 40, 50 };
int len = sizeof(arr) / sizeof(int);
int L = lower_bound(arr,arr+len, 30) - arr; // 計算在arr陣列裡比30還小的數字有幾個
int T = upper_bound(arr,arr+len, 30) - arr; // 計算在arr陣列裡比30還大的數字有幾個
cout << L << " " << T; // 2 5
}
```
d073
```cpp=
#include<iostream>
using namespace std;
int main() {
int n;
cin >> n;
cout << (n+2)/3 << endl;
}
```
a002
```cpp=
#include<iostream>
using namespace std;
int main (){
int a , b;
cin >> a >> b;
cout << a+b;
}
```
d461
```cpp=
#include<iostream>
using namespace std;
int main() {
int a;
cin >> a;
cout << a - 1;
}
```
d060
```cpp=
#include<iostream>
using namespace std;
int main(){
int a;
cin >> a;
cout << (60-a+25)%60 << endl;
}
```
d827
```cpp=
#include<iostream>
using namespace std;
int main(){
int n , total;
cin >> n;
if (n>12)
total += 50 * (n/12) + 5 * (n%12);
else
total += n * 5;
cout << total << endl;
}
```
c776
```cpp=
#include<iostream>
using namespace std;
int main(){
int n , m;
cin >> n >> m;
cout << 6 + 4*(m-1) + (n-1) * (3*m+2) << endl;
}
```
d065
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int a[50],maxNum=0;
for (int i = 0;i<3;i++) {
cin >> a[i];
if (a[i] > maxNum)
maxNum = a[i];
}
cout << maxNum;
}
```
d064
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int a;
cin >> a;
if (a%2 == 0)
cout << "Even";
else
cout << "Odd";
}
```
d058
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int a;
cin >> a;
if (a > 0)
cout << "1";
else if (a < 0)
cout << "-1";
else
cout << "0";
}
```
d126
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int a,b;
while (cin >> a >> b) {
cout << a*2+b*2 << "\n";
}
}
```
d066
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int a,b;
cin >> a >> b;
if (a >= 8 && a < 17) {
cout << "At School";
} else if (a == 7 && b >= 30) {
cout << "At School";
} else {
cout << "Off School";
}
}
```
a006
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int a,b,c,x1,x2,s;
cin >> a >> b >> c;
x1=(sqrt(b*b-4*a*c)-b)/(2*a);
x2=-(sqrt(b*b-4*a*c)+b)/(2*a);
s = b*b-4*a*c;
if (s == 0) cout << "Two same roots x=" << x1;
else if (s < 0) cout << "No real root";
else cout << "Two different roots x1=" << x1 << " , x2=" << x2;
}
```
a053
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int N;
cin >> N;
if (N > 40) cout << "100";
else if (N >= 21 && N <= 40) cout << (10*6)+(10*2)+(N-20);
else if (N >= 11 && N <= 20) cout << (10*6)+((N-10)*2);
else cout << N*6;
}
```
d460
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int a;
cin >> a;
if (a >= 60) cout << "399";
else if (a >= 18 && a < 60) cout << "890";
else if (a >= 12 && a < 18) cout << "790";
else if (a >= 6 && a < 12) cout << "590";
else cout << "0";
}
```
d273
- 這題很賤假設n=0 , k=0的時候也會算Ok!
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,k;
while (cin >> n >> k) {
if (n != 0 && k == 0) {
cout << "Impossib1e!" << "\n";
continue;
} else if (n == 0 && k == 0) {
cout << "Ok!" << "\n";
continue;
}
if (n % k == 0) cout << "Ok!" << "\n";
else if (n % k != 0) cout << "Impossib1e!" << "\n";
}
}
```
d053
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main () {
int a,b;
while (cin >> a >> b) {
cout << a*b-1 << "\n";
}
}
```
a861
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main () {
int H,W,P;
while(cin >> H >> W) {
P = 2 * H + 2 * W;
cout << P << "\n";
}
}
```
d485
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int a,b;
cin >> a >> b;
if (a == b && a%2 != 0) cout << 0;
else if (a == 1) cout << abs((b/2) - (a/2));
else cout << abs((b/2) - (a/2)) + 1;
}
```
d039
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int t,a,b,sum;
cin >> t;
for (int i = 0;i < t;i++) {
sum = 0;
cin >> a >> b;
sum = (a/3) * (b/3);
cout << sum << "\n";
}
}
```
### 10/10
a004
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int a;
while(cin >> a) {
if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0) cout << "閏年\n";
else cout << "平年\n";
}
}
```
d069
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int t,year;
cin >> t;
for (int i = 0; i < t; i++) {
cin >> year;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) cout << "a leap year\n";
else cout << "a normal year\n";
}
}
```
d070
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main () {
int year = 1;
while (cin >> year) {
if (year == 0) break;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) cout << "a leap year\n";
else cout << "a normal year\n";
}
}
```
d071
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main () {
int year;
while (cin >> year) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) cout << "a leap year\n";
else cout << "a normal year\n";
}
}
```
d072
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,year;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> year;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) cout << "Case " << i+1 << ": a leap year\n";
else cout << "Case " << i+1 << ": a normal year\n";
}
}
```
### 10/15
a824
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int a,b,c,sum = 0,t=0;
cin >> a >> b >> c;
for (int i = 1;i <= c;i++) {
if (i % a == 0 || i % b == 0) sum += i;
}
sum = sum%26;
for (char i = 'A' ; i <= 'Z';i++) {
t += 1;
if (t == sum) cout << i;
}
}
```
a024
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int a,b,t;
cin >> a >> b;
while (a % b) {
t = a % b;
a = b;
b = t;
}
cout << b;
}
```
a215
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,m;
while (cin >> n >> m) {
int sum = 0;
for (int i =0;;i++) {
sum += n + i;
if (sum > m) {
cout << i+1 << "\n";
break;
}
}
}
}
```
d074
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,num,dp[50],maxNum=0;
cin >> n;
for (int i = 0;i < n;i++) {
cin >> dp[i];
}
for (int i = 0;i <n;i++) {
if (dp[i] > maxNum) maxNum = dp[i];
}
cout << maxNum;
}
```
c022
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,a,b;
cin >> n;
for (int i = 0;i < n;i++) {
int sum = 0;
cin >> a >> b;
for (int j = a; j <= b;j++)
if (j%2 == 1) sum += j;
cout << "Case " << i+1 << ": " << sum << "\n";
}
}
```
### 10/23
d356
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int k;
double i = 1,sum = 0;
cin >> k;
do {
sum += 1/i;
i++;
}while(k >= sum);
cout << int(i-1);
}
```
d356
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main () {
int n,sum = 0;
while (cin >> n) {
sum = 0;
for (int i = 1;n > i;i++) {
if (n%i == 0)
sum += i;
}
if (sum > n) cout << "盈數" << "\n";
else if (sum == n) cout << "完全數" << "\n";
else if (sum < n) cout << "虧數" << "\n";
}
}
```
d186
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int a,b,t = 0;
while (cin >> a >> b) {
if (a == 0 && b == 0) break;
int t = 0;
for (int i = sqrt(a);i <= sqrt(b);i++) {
if (pow(i,2) >= a && pow(i,2) <= b) t += 1;
}
cout << t << "\n";
}
}
```
a536
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int N,e,t,c,sum = 0,cola = 0,conter = 0;
cin >> N;
for (int i = 0; i < N;i++) {
cin >> e >> t >> c;
cola = e + t;
sum = 0;
while (cola >= c) {
conter = cola % c;
sum += cola /= c;
cola += conter;
}
cout << sum << "\n";
}
}
```
d122
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
long long int N,sum = 0;
while (cin >> N) {
sum = 0;
while (N != 0) {
sum += N / 5;
N /= 5;
}
cout << sum << "\n";
}
}
```
### 11/06
c461
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int a,b,c;
bool result = false;
cin >> a >> b >> c;
// 先將數值變為 0 跟 1
if (a != 0) a = 1;
if (b != 0) b = 1;
// 這裡我用int(a and b) 是因為c為整數
// 我不能讓他跟布林值去比
if (int(a and b) == c) {
cout << "AND\n";
result = true;
}
if (int(a or b) == c) {
cout << "OR\n";
result = true;
}
if (int(a xor b) == c) {
cout << "XOR\n";
result = true;
}
if (result == false) cout << "IMPOSSIBLE\n";
}
```
e283
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
char letter[16];
letter[5] = 'A';
letter[7] = 'B';
letter[2] = 'C';
letter[13] = 'D';
letter[8] = 'E';
letter[12] = 'F';
int N;
while(cin >> N) {
for (int i = 0;i < N;i++) {
int x = 0,tmp;
for (int j = 0; j < 4;j++) {
cin >> tmp;
// 當我的數字往前一格就 * 2 (二進位法)
// 假設是 0 0 0 1 這樣 x = 1
// 假設是 0 1 0 0 這樣 x = 0*2+0 + 0*2+1 + 1*2+0 + 2*2+0
x = x * 2 + tmp;
}
cout << letter[x];
}
cout << "\n";
}
}
```
e286
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int tmp1[5];
int tmp2[5];
int result = 0;
for (int i = 0;i < 2;i++) {
int a,b,c,d;
cin >> a >> b >> c >> d;
tmp1[i] = a+b+c+d;
int x,y,z,s;
cin >> x >> y >> z >> s;
tmp2[i] = x+y+z+s;
if (tmp1[i] > tmp2[i]) result += 1;
if (tmp1[i] < tmp2[i]) result -= 1;
cout << tmp1[i] << ":" << tmp2[i] << "\n";
}
if (result > 0) cout << "Win";
else if (result < 0) cout << "Lose";
else cout << "Tie";
}
```
f312
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
// 答案可能是負的
int Y1,Y2,n,maxNum = -1000000;
int a1,b1,c1;
int a2,b2,c2;
cin >> a1 >> b1 >> c1 >> a2 >> b2 >> c2 >> n;
for (int i = 0;i <= n;i++) {
Y1 = a1 * pow(i,2) + b1*i + c1;
Y2 = a2 * pow((n-i),2) + b2*(n-i) + c2;
if (Y1+Y2 > maxNum) {
maxNum = Y1+Y2;
}
}
cout << maxNum;
}
```
f605
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,d,sum = 0,count = 0;
cin >> n >> d;
for (int i = 0;i < n;i++) {
int a,b,c;
cin >> a >> b >> c;
if (abs(b-a) >= d || abs(c-b) >= d || abs(c-a) >= d) {
sum += (a+b+c)/3;
count += 1;
}
}
cout << count << " " << sum;
}
```
### 11/13
h081
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,D;
cin >> n >> D;
int money[n] , sell = 0, buyMoney = 0, sellMoney = 0,profit = 0;
bool buy = false,first = true;
for (int i = 0;i < n;i++) {
cin >> money[i];
}
sellMoney = money[0];
for (int i = 0;i < n;i++) {
if (first == true) {
buy = true;
first = false;
buyMoney = money[i];
} else if (buy == false && money[i] <= sellMoney - D) {
buy = true;
buyMoney = money[i];
} else if (buy == true && money[i] >= buyMoney + D) {
buy = false;
sellMoney = money[i];
profit += money[i] - buyMoney;
}
}
cout << profit;
}
```
i428
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,xi , yi,maxNum = -1000000,minNum = 1000000, bx , by;
// 先輸入第一個座標位置
cin >> n >> bx >> by;
for (int i = 0;i < n-1;i++) {
// 輸入第二個座標位置
cin >> xi >> yi;
// 計算距離
int distance = abs(xi - bx) + abs(yi - by);
bx = xi;
by = yi;
maxNum = max(maxNum , distance);
minNum = min(minNum , distance);
}
cout << maxNum << " " << minNum;
}
```
h026
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int F,N,times0 = 0,times2 = 0,times5 = 0;
cin >> F >> N;
int y[N];
for (int i = 0;i < N;i++) {
cin >> y[i];
}
for (int i = 0;i < N;i++) {
if (times0 == 2) {
F = 5;
times0 = 0;
}
if (times2 == 2) {
F = 0;
times2 = 0;
}
if (times5 == 2) {
F = 2;
times5 = 0;
}
if (F == 0) {
if (y[i] == 0) {
times0 += 1;
cout << y[i] << " ";
if (i+1 == N) cout << ": Drew at round " << i+1;
continue;
}
else if (y[i] == 2) cout << F << " : Won at round " << i+1;
else if (y[i] == 5) cout << F << " : Lost at round " << i+1;
times0 = 0;
break;
}
if (F == 2) {
if (y[i] == 2) {
times2 += 1;
cout << y[i] << " ";
if (i+1 == N) cout << ": Drew at round " << i+1;
continue;
}
else if (y[i] == 5) cout << F << " : Won at round " << i+1;
else if (y[i] == 0) cout << F << " : Lost at round " << i+1;
times2 = 0;
break;
}
if (F == 5) {
if (y[i] == 5) {
times5 += 1;
cout << y[i] << " ";
if (i+1 == N) cout << ": Drew at round " << i+1;
continue;
}
else if (y[i] == 0) cout << F << " : Won at round " << i+1;
else if (y[i] == 2) cout << F << " : Lost at round " << i+1;
times5 = 0;
break;
}
}
}
```
f579
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int a,b,n,ans = 0;
cin >> a >> b >> n;
for (int i = 0;i < n;i++) {
int input,a_count = 0,b_count = 0;
cin >> input;
while (input != 0) {
if (input == a) a_count++;
else if (input == b) b_count++;
else if (input == -a) a_count--;
else if (input == -b) b_count--;
cin >> input;
}
if (a_count > 0 && b_count > 0) ans++;
}
cout << ans;
}
```
g275
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
for (int i = 0;i < n;i++) {
int A = 0,B = 0,C = 0;
int t1[8],t2[8];
for (int j = 1;j <= 7;j++) cin >> t1[j];
for (int j = 1;j <= 7;j++) cin >> t2[j];
// A
if ((t1[2] != t1[4] && t1[2] == t1[6]) && (t2[2] != t2[4] && t2[2] == t2[6])) {
A = 1;
}
else {
A = 0;
cout << "A";
}
// B
if ((t1[7] == 1) && (t2[7] == 0)) {
B = 1;
}
else {
B = 0;
cout << "B";
}
// C
if ((t1[2] != t2[2]) && (t1[4] != t2[4]) && (t1[6] != t2[6])) {
C = 1;
}
else {
C = 0;
cout << "C";
}
if (A&B&C) {
cout << "None";
}
cout << "\n";
}
}
```
### 11/20
g595
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,total = 0;
cin >> n;
int h[n];
for (int i = 0;i < n;i++) cin >> h[i];
for (int i = 0;i < n;i++) {
if (i == 0 && h[i] == 0) {
total += h[i+1];
continue;
}
if (i == n-1 && h[i] == 0 && h[0] > h[i-1]) {
total += h[0];
continue;
} else if (i == n-1 && h[i] == 0 && h[i-1] > h[0]) {
total += h[i-1];
continue;
}
if (h[i] == 0) {
if (h[i+1] > h[i-1]) total += h[i-1];
else total += h[i+1];
}
}
cout << total;
}
```
i399
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int a,b,c,sum[10] = {0},Max = 0;
cin >> a >> b >> c;
sum[a]++;sum[b]++;sum[c]++;
for (int i = 1;i < 10;i++) {
if (sum[i] > Max) Max = sum[i];
}
cout << Max << " ";
for (int i = 9;i >= 0;i--) {
if (sum[i] > 0) cout << i << " ";
}
}
```
b964
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int student,maxFailed = -1,minPass = 101;
bool FailedChange = false,PassChange = false;
cin >> student;
int grade[student];
for (int i = 0;i < student;i++) cin >> grade[i];
int len = sizeof(grade) / sizeof(int);
sort(grade,grade + len);
for (int i = 0;i < student;i++) cout << grade[i] << " ";
for (int i = 0;i < student;i++) {
if (grade[i] < 60 && grade[i] > maxFailed) {
FailedChange = true;
maxFailed = grade[i];
}
if (grade[i] >= 60 && grade[i] < minPass) {
PassChange = true;
minPass = grade[i];
}
}
cout << "\n";
if (maxFailed == -1 && FailedChange == false) cout << "best case\n";
else cout << maxFailed << "\n";
if (minPass == 101 && PassChange == false) cout << "worst case";
else cout << minPass;
}
```
c290
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int A = 0,B = 0;
string num;
cin >> num;
for (int i = 0;i < num.size();i++) {
if (i % 2 == 0) A += num[i] - '0';
else B += num[i] - '0';
}
cout << abs(A - B);
}
```
c294
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int a[3];
for (int i = 0;i < 3;i++) cin >> a[i];
sort(a,a+3);
for (int i = 0;i < 3;i++) cout << a[i] << " ";
cout << "\n";
if (a[0]+a[1] < a[2]) cout << "No\n";
else if (a[0]*a[0] + a[1]*a[1] == a[2]*a[2]) cout << "Right\n";
else if (a[0]*a[0] + a[1]*a[1] > a[2]*a[2]) cout << "Acute\n";
else if (a[0]*a[0] + a[1]*a[1] < a[2]*a[2]) cout << "Obtuse\n";
}
```
### 11/27
c295
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int N , M , S = 0,times = 0;
cin >> N >> M;
int num[N][M] = {0};
int tmp[N] = {0};
for (int i = 0;i < N;i++) {
int maxNum = -1;
for (int j = 0;j < M;j++) {
cin >> num[i][j];
if (num[i][j] > maxNum) {
maxNum = num[i][j];
}
}
tmp[i] = maxNum;
S += maxNum;
}
cout << S << "\n";
for (int i = 0;i < N;i++) {
if (S % tmp[i] == 0) {
if (times == 0) cout << tmp[i];
else cout << " " << tmp[i];
times += 1;
}
}
if (times == 0) cout << "-1\n";
}
```
c291
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int N;
cin >> N;
int group[N] , fr[N];
for (int i = 0;i < N;i++) {
group[i] = -1;
cin >> fr[i];
}
for (int i = 0;i < N;i++) {
if (group[i] >= 0) continue;
int now = i;
group[i] = i;
while (fr[now] != i) {
group[fr[now]] = i;
now = fr[now];
}
}
int ans = 0;
for (int i = 0;i < N;i++) {
ans += (group[i] == i);
}
cout << ans << "\n";
}
```
d563
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int n , ans = 0 ,prefix = 0,suffix = 0;
cin >> n;
int x[n];
for (int i = 0;i < n;i++) cin >> x[i];
prefix = x[0];
suffix = x[n-1];
for (int i = 0,j = n-1;i < n && j >= 0;) {
if (prefix == suffix) {
ans += 1;
prefix += x[++i];
} else if (prefix > suffix) {
suffix += x[--j];
} else if (suffix > prefix) {
prefix += x[++i];
}
}
cout << ans;
}
```
a693
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,m,f,t;
int satiety[100010];
while (cin >> n >> m) {
for (int i = 1;i <= n;i++) {
cin >> satiety[i];
satiety[i] += satiety[i - 1];
}
for (int i = 1;i <= m;i++) {
cin >> f >> t;
cout << satiety[t] - satiety[f-1] << "\n";
}
}
}
```
### 12/4
d478
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int n , m;
cin >> n >> m;
int num1[m],num2[m];
while (n--) {
for (int i = 0;i < m;i++) {
cin >> num1[i];
}
for (int i = 0;i < m;i++) {
cin >> num2[i];
}
int i = 0, j = 0 , ans = 0;
while (i < m && j < m) {
if (num1[i] == num2[j]) {
ans++;
i++;
} else if (num1[i] < num2[j]) {
i++;
} else {
j++;
}
}
cout << ans << "\n";
}
}
```
d596
```cpp=
#include<bits/stdc++.h>
using namespace std;
vector <int> v[10] = {{} , {2,4}, {1,3,5},{2,6},{1,5,7},{2,4,6,8},{3,5,9},{4,8},{5,7,9},{6,8}};
/*
1 2 3
4 5 6
7 8 9
*/
int main(int argc, const char * argv[]) {
int t, ans[10] = {0};
cin >> t;
while (t--) {
int a,b,c;
cin >> a >> b >> c;
for (int i:v[a]) { // 當我的 i 在 v[a] 這個裡面的數字時,就 ans[i] = 1;
ans[i] = 1;
}
for (int i:v[b]) {
ans[i] = 0;
}
for (int i:v[c]) {
ans[i] = 0;
}
bool flag = false;
for (int i = 1;i < 10;i++) {
if (ans[i]) {
ans[i] = 0;
cout << i << " ";
flag = true;
}
}
if (!flag) cout << "Empty";
cout << "\n";
}
}
```
d481
```cpp=
#include<bits/stdc++.h>
using namespace std;
int main() {
int a,b,c,d;
while (cin >> a >> b >> c >> d) {
if (b != c) {
cout << "Error\n";
continue;
}
long long mat1[a][b],mat2[c][d];
for (int i = 0;i < a;i++) {
for (int j = 0;j < b;j++) {
cin >> mat1[i][j];
}
}
for (int i = 0;i < c;i++) {
for (int j = 0;j < d;j++) {
cin >> mat2[i][j];
}
}
long long ans[a][d];
for (int i = 0;i < a;i++) {
for (int j = 0;j < d;j++) {
ans[i][j] = 0;
for (int k = 0;k < c;k++) {
ans[i][j] += mat1[i][k] * mat2[k][j];
}
}
}
for (int i = 0;i < a;i++) {
for (int j = 0;j < d;j++) {
cout << ans[i][j] << " ";
}
cout << "\n";
}
}
}
```
a694
```cpp=
#include<bits/stdc++.h>
using namespace std;
int food[510][510];
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
int n,m,x1,x2,y1,y2;
while (cin >> n >> m) {
for (int i = 1;i <= n;i++) {
for (int j = 1;j <= n;j++) {
cin >> food[i][j];
food[i][j] += food[i-1][j] + food[i][j-1] - food[i-1][j-1];
}
}
for (int i = 0;i < m;i++) {
cin >> x1 >> y1 >> x2 >> y2;
cout << food[x2][y2] - food[x2][y1 - 1] - food[x1 - 1][y2] + food[x1 - 1][y1 - 1] << "\n";
}
}
}
```
### 2/20
b965
```cpp=
#include<bits/stdc++.h>
using namespace std;
int R,C,M,a[10][10],b[10][10];
void rRotate() {
for (int i = 0;i < R;i++) {
for (int j = 0;j < C;j++) {
b[i][j] = a[i][j];
}
}
for (int i = 0;i < R;i++) {
for (int j = 0;j < C;j++) {
a[C-1-j][i] = b[i][j];
}
}
swap(R,C);
}
void rFlip() {
for (int i = 0;i < R;i++) {
for (int j = 0;j < C;j++) {
b[i][j] = a[i][j];
}
}
for (int i = 0;i < R;i++) {
for (int j = 0;j < C;j++) {
a[R-i-1][j] = b[i][j];
}
}
}
int main() {
while (cin >> R >> C >> M) {
int k[M];
for (int i = 0;i < R;i++) {
for (int j = 0;j < C;j++) {
cin >> a[i][j];
}
}
for (int i = 0;i < M;i++) cin >> k[i];
for (int i = M - 1; i >= 0; i--) { // 要逆著運行
if (k[i] == 0) rRotate();
else rFlip();
}
cout << R << " " << C << "\n";
for (int i = 0;i < R;i++) {
for (int j = 0;j < C;j++) {
if (j == C - 1) cout << a[i][j] << "\n";
else cout << a[i][j] << " ";
}
}
}
}
```