1. 程式人生 > >周練4

周練4

7-32 點贊 

雖然一次過 但是感覺我方法很怪  不巧妙

#include<iostream>
#include<cstring>
#include <bits/stdc++.h>
using namespace std;

struct aaa
{
  int num;
  int f;

}a[1000];
bool cmp(struct aaa a1,struct aaa a2)
{
    if(a1.f!=a2.f)return a1.f>a2.f;
    else  return  a1.num>a2.num;



}
int main(){ map<int ,int>ma; int n;cin>>n;int c=0; for(int i=1;i<=n;i++) { int k;cin>>k; while(k--) { int x;cin>>x; if(!ma.count(x)){ma[x]=c;a[c].f++;a[c].num=x;c++;} else a[ma[x]].f++; } } sort(a,a+c,cmp); printf("%d %d
",a[0].num,a[0].f); return 0; }
View Code

 

非常簡單。。。

#include <iostream>
using namespace std;
int book[1005] = {0};
int main()
{   
    int n;
    cin >> n;
    int count = 0;  //被點贊最多的數量 
    int ans = 0;
    for(int i = 0; i < n; i++) {
        int x;
        cin 
>> x; for(int j = 0; j < x; j++) { int data; cin >> data; book[data]++; if(book[data] > count) { count = book[data]; ans = data; } else if(book[data] == count && data > ans) { //並列的情況 count = book[data]; ans = data; } } } cout << ans << " " << count; return 0; }
View Code

就是邊讀邊判斷 !!!