赞
踩
目录
特点:不知道每一行要输入的数字有多少个,一共要输入n行数字
可以这样写:
- for(int i = 0;i < n;i ++)
- {
- int x;
- while(std::cin >> x)
- {
- a.push_back(x);
- if(std::cin.get()=='\n')
- break;
- }
- }
完整代码:
- #include <bits/stdc++.h>
- #define int long long
- const int N = 1e5+10;
- std::vector<int> a;
- std::set<int> s;
- signed main()
- {
- int n,len=0;
- std::cin >> n;
- int k = 0;
- for(int i = 0;i < n;i ++)
- {
- int x;
- while(std::cin >> x)
- {
- a.push_back(x);
- if(std::cin.get()=='\n')
- break;
- }
- }
- std::sort(a.begin(),a.end());
- // for(int i = 0;i < a.size();i ++)
- // {
- // std::cout<<a[i]<<" ";
- // }
- int duan=0,chong=0;
- for(int i = 1;i < a.size();i ++)
- {
- if(a[i]-a[i-1]==2)
- {
- duan=a[i]-1;
- }
- int x=a[i];
- if(s.find(x)==s.end())
- {
- s.insert(x);
- }
- else if(s.find(x)!=s.end())
- {
- chong=x;
- }
- }
- std::cout<<duan<<" "<<chong;
- return 0;
- }
思路:结构体排序,满足返回true,不满足返回false
完整代码:
- #include <bits/stdc++.h>
- #define int long long
- struct node
- {
- int xh;
- int yw;
- int sx;
- int yy;
- int sum;
- };
- std::vector<node> a;
- bool cmp(node &a1,node &a2)
- {
- if(a1.sum>a2.sum) return true;
- else if(a1.sum<a2.sum) return false;
- else if(a1.yw>a2.yw) return true;
- else if(a1.yw<a2.yw) return false;
- else if(a1.xh<a2.xh) return true;
- else if(a1.xh>a2.xh) return false;
- else return false;
- }
- signed main()
- {
- int n;
- std::cin >> n;
- for(int i = 0;i < n;i ++)
- {
- int x,y,z;
- std::cin >> x >> y >> z;
- a.push_back({i+1,x,y,z,x+y+z});
- }
- std::sort(a.begin(),a.end(),cmp);
- for(int i = 0;i < 5;i++)
- {
- std::cout<<a[i].xh<<" "<<a[i].sum<<"\n";
- }
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。