2 条题解
-
1
#include <bits/stdc++.h> using namespace std; int main() { int x1, y1, x2, y2, s1, s2; cin >> x1 >> y1 >> x2 >> y2; int n = 18 * 4;//一圈总步数 //如果是上下两条线 if (abs(x1 - x2) == 18) { //从左侧走 s1 = y1 - 1 + 18 + y2 - 1; s2 = n - s1; // 从右侧走 } else if (abs(y1 - y2) == 18) { //从下面走 s1 = x1 - 1 + 18 + x2 - 1; s2 = n - s1; //从上面走 //在一条线上 } else if (x1 == x2) { s1 = abs(y1 - y2);//只能是这样解 s2 = n - s1; } else if (y1 == y2) { s1 = abs(x1 - x2); s2 = n - s1; } else//在相邻的边 { s1 = abs(x1 - x2) + abs(y1 - y2); s2 = n - s1; } //输出更短的路径 if (s1 < s2) { cout << s1; } else { cout << s2; } return 0; }//代码已AC
-
0
#include <iostream> using namespace std; int main() { int a,b,c,d,ans[4],num=100; cin >> a >> b >> c >> d; for(int i=0;i<4;i++) { ans[i]=0; } if(d==b) { if(a==1 && c==19) { for(int i=b;i>1;i--) { ans[0]++; } for(int i=a;i<19;i++) { ans[0]++; } for(int i=1;i<d;i++) { ans[0]++; } for(int i=b;i<19;i++) { ans[1]++; } for(int i=a;i<19;i++) { ans[1]++; } for(int i=19;i>d;i--) { ans[1]++; } if(ans[0]>ans[1]) { cout << ans[1] << endl; } else { cout << ans[0] << endl; } } else if(a==19 && c==1) { for(int i=b;i>1;i--) { ans[2]++; } for(int i=a;i>1;i--) { ans[2]++; } for(int i=b;i<d;i++) { ans[2]++; } for(int i=b;i<19;i++) { ans[3]++; } for(int i=a;i>1;i--) { ans[3]++; } for(int i=b;i>d;i--) { ans[3]++; } if(ans[2]>ans[3]) { cout << ans[2] << endl; } else { cout << ans[3] << endl; } } else { if(a<=c) { for(int i=a;i<=19;i++) { a=i; if(a==c) { break; } ans[0]++; } cout << ans[0] << endl; } else if(c<=a) { for(int i=a;i>=1;i--) { a=i; if(a==c) { break; } ans[1]++; } cout << ans[1] << endl; } } } else { if(b<d) { for(int i=a;i>1;i--) { ans[0]++; } for(int i=b;i<d;i++) { ans[0]++; } for(int i=1;i<c;i++) { ans[0]++; } for(int i=a;i<19;i++) { ans[1]++; } for(int i=b;i<d;i++) { ans[1]++; } for(int i=19;i>c;i--) { ans[1]++; } if(ans[0]>ans[1]) { cout << ans[1] << endl; } else { cout << ans[0] << endl; } } else if(d<b) { for(int i=a;i>1;i--) { ans[2]++; } for(int i=b;i>d;i--) { ans[2]++; } for(int i=1;i<c;i++) { ans[2]++; } for(int i=b;i<19;i++) { ans[3]++; } for(int i=a;i<19;i++) { ans[3]++; } for(int i=19;i>d;i--) { ans[3]++; } for(int i=19;i>c;i--) { ans[3]++; } if(ans[2]>ans[3]) { cout << ans[3] << endl; } else { cout << ans[2] << endl; } } } return 0; }
- 1
信息
- ID
- 530
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 5
- 标签
- 递交数
- 87
- 已通过
- 35
- 上传者