structnode{int data;string str;char ch;// 構造函數最后沒有分號node():ch(),str(),data(){}node(int a, string b,char c):data(a),str(b),ch(c){}}p[10];
#include<iostream>#include<vector>usingnamespace std;structShares{int d;vector<double> data;vector<int> sum;Shares(){}Shares(vector<double>const&x,double t):data(x){d =(int)data.size();int num = t *100;for(int i =0; i < d; i ++){num =(1.0+0.01* data[i])* num;sum.push_back(num);}}boolcmp(vector<double>const&a){int len =(int)a.size();if(len > d)returnfalse;for(int i =0; i < len; i ++){if(a[i]!= data[i])returnfalse;}returntrue;}intcalc(vector<double>const&a){int len =(int)a.size();if(!cmp(a))return-1;int k = len -1;for(int i = len; i < d; i ++){if(sum[i]> sum[k]) k = i;}return k - len +1;}};intmain(){ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);int n;cin >> n;vector<Shares> shares;for(int i =0; i < n; i ++){double w;int k;cin >> w >> k;vector<double>x(k);for(int j =0; j < k; j ++)cin >> x[j];shares.emplace_back(x, w);}int q;cin >> q;while(q --){int k;cin >> k;vector<double>x(k);for(int i =0; i < k; i ++)cin >> x[i];int vis =0, ans =-1;for(int i =0; i < n; i ++){int temp = shares[i].calc(x);if(temp >=0){vis ++;ans = temp;}}if(vis !=1){cout <<-2<< endl;}else{cout <<(ans ==0?-1: ans)<< endl;}}}