# I/O 加速(ZJ常用) 在main內加上這幾行 ```cpp= #include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); } ``` 接下來正常寫程式即可 # continue/break ```cpp= for() { if() continue;//跳過這次 if() break;//結束迴圈 } ``` # 排序&反轉 ## 陣列 ```cpp= int a[n]; sort(a,a+n);//排序 reverse(a,a+n);//反轉 ``` ## 字串及動態陣列(APCS >3) ```cpp= string s;//字串 reverse(s.begin(),s.end());//string幾乎沒在用排序 vector<int> v;//動態陣列 sort(v.begin(),v.end()); reverse(v.begin(),v.end()); ``` # 尋找最大最小值 ## 第一種作法 ```cpp= int a[n]; int mins=INT_MAX,maxs=-1; for(int i=0;i<n;i++) { if(mins>a[i]) mins=a[i]; if(maxs<a[i]) maxs=a[i]; } ``` ## 第二種作法 ```cpp= int a[n]; int mins=INT_MAX,maxs=-1; for(int i=0;i<n;i++) { mins=min(mins,a[i]); maxs=max(maxs,a[i]); } ``` ## 第三種作法 ```cpp= int a[n]; sort(a,a+n); cout<<a[0]<<endl;//min cout<<a[n-1]<<endl;//max ``` # 巢狀迴圈(多個迴圈) 以[c295. 最大和](https://zerojudge.tw/ShowProblem?problemid=c295)為例 ```cpp= for(int i=0;i<m;i++) { for(int j=0;j<n;j++) { } } ``` m表示有m行 n表示每行有n個元素 注意內外迴圈不可用相同變數,三個或以上以此類推 # 整行讀入 ```cpp= string s; getline(cin,s); ``` 這會整行讀入(連同空白),直到遇到換行 # 切字串 ```cpp= string s,ss; ss=s.substr(0,3); ``` 這時候的ss會是從s[0]切大小為3的字串