这次div3比上次多一道, 也加了半小时, 说区分不出1600以上的水平。(我也不清楚)。
题意:给你一个数组,删除这个数组中相同的元素, 并且保留右边的元素。
代码:
1 #include<bits/stdc++.h> 2 using namespace std; 3 #define Fopen freopen("_in.txt","r",stdin); freopen("_out.txt","w",stdout); 4 #define LL long long 5 #define ULL unsigned LL 6 #define fi first 7 #define se second 8 #define pb push_back 9 #define lson l,m,rt<<1 10 #define rson m+1,r,rt<<1|1 11 #define max3(a,b,c) max(a,max(b,c)) 12 #define min3(a,b,c) min(a,min(b,c)) 13 typedef pair<int,int> pll; 14 const int INF = 0x3f3f3f3f; 15 const LL mod = 1e9+7; 16 const int N = 1e5+10; 17 int vis[N]; 18 int a[N]; 19 int main(){ 20 ///Fopen; 21 int n; 22 int t = 0; 23 scanf("%d", &n); 24 for(int i = 1; i <= n; i++){ 25 scanf("%d", &a[i]); 26 if(vis[a[i]] == 0) t++; 27 vis[a[i]] = i; 28 } 29 printf("%d\n", t); 30 for(int i = 1; i <= n; i++){ 31 if(vis[a[i]] == i){ 32 printf("%d ", a[i]); 33 } 34 } 35 return 0; 36 }