/*
P2T 12/13-2 陣列的練習
給一個正整數 n {1<n<10^6} ,接著給n-1個 1~n的編號,請問少了哪一個?
例如 5 4 1 2 3 ,後面4個編號中少了5
6 5 6 1 3 2 ,後面5個編號中少了4
*/
#include <iostream>
using namespace std;
int a[1000001]; // 0~1000000
int main()
{
int i,j,k,n;
while( cin >> n )
{
for(i=1; i<=n; ++i)
a[i]=0;
for(i=1; i<n; ++i)
{
cin >> k;
a[k] = 1;
}
for(i=1; i<=n; ++i)
{
if( !a[i])
{
cout << i << endl;
break;
}
}
}
return 0;
}
/*
P2T 12/27-1 陣列的練習
給一個正整數 n {1<n<10^4} ,接著給n個相異編號{ 1~10^9},
再n-1個編號,請問少了哪一個? 6 1 12 23 34 56 67 56 67 1 34 23 少了12
例如 5 66666666 123456 234567 33 777777
66666666 123456 234567 777777,後面4個編號中少了33
66666666 123456 234567 777777,後面4個編號中少了33
6 543 612 93333333 93333336 2345 111
543 612 933336 2345 111 後面5個編號中少了93333333
543 612 933336 2345 111 後面5個編號中少了93333333
*/
#include <iostream>
using namespace std;
int a[100000001]; //a[100000001]; // 0~1000000000 記憶體容量 不允許
int main()
{
int i,k,n,m;
while( cin >> n )
{
for(i=1; i<=n; ++i)
a[i]=0;
for(i=1; i<=n; ++i)
{
cin >> k;
a[k] = 1;
}
m=0;
for(i=1; i<n; ++i)
{
cin >> k;
if(k>m) m=k; //最大的數
a[k] = 0;
}
for(i=1; i<=m; ++i)
{
if( a[i])
{
cout << i << endl;
break;
}
}
}
return 0;
}
/* P2T 12/27-2 陣列的應用 + map
C++ STL
vector
set
map
...
P2T 12/27-2 陣列的練習
給一個正整數 n {1<n<10^4} ,接著給n個相異編號{ 1~10^9},
再n-1個編號,請問少了哪一個? 6 1 12 23 34 56 67 56 67 1 34 23 少了12
例如 5 666666666 123456789 234567891 33 7777777
a[0] a[1] a[2] a[3] a[4]
666666666 123456789 234567891 7777777,後面4個編號中少了33
6 543 612 933333333 933333336 2345 111
933333336 2345 111 543 612 ,
後面5個編號中少了933333333
*/
#include <iostream>
#include <map> // 字典類
#include <cstring> // memset
using namespace std;
map<int,int> mp; //某個名稱或數字(可能很大) 對應至序號
int mpcnt;
int a[10000];
bool b[10000];
int main()
{
int n,i,j;
while( cin >> n )
{
mp.clear(); //mp清空
memset(b,0,sizeof(b)); // b全清為 0
for(i=0; i<n; ++i)
{
cin >> a[i];
mp[ a[i] ] = i;
}
// 只回來 n-1 個,少了哪一個
for(i=0; i<n-1; ++i)
{
cin >> k;
j = mp[ k ] //直接傳回原序號
b[j]=1;
}
for(i=0; i<n; ++i)
{
if( b[i] == 0 ) //印出未回的
{
cout << a[i] << endl;
break;
}
}
}
system("pause");
return 0;
}
/* P2T 12/27-2 陣列的應用 + map
C++ STL
vector
set
map
...
P2T 12/27-2 陣列的練習
給一個正整數 n {1<n<10^4} ,接著給n個相異編號{ 1~10^9},
再n-1個編號,請問少了哪一個? 6 1 12 23 34 56 67 56 67 1 34 23 少了12
例如 5 666666666 123456789 234567891 33 7777777
a[0] a[1] a[2] a[3] a[4]
666666666 123456789 234567891 7777777,後面4個編號中少了33
6 543 612 933333333 933333336 2345 111
933333336 2345 111 543 612 ,
後面5個編號中少了933333333
*/
#include <iostream>
#include <map> // 字典類
#include <cstring> // memset
using namespace std;
map<int,int> mp; //某個名稱或數字(可能很大) 對應至序號
int mpcnt;
int a[10000];
bool b[10000];
int main()
{
int n,i,j;
while( cin >> n )
{
mp.clear(); //mp清空
memset(b,0,sizeof(b)); // b全清為 0
for(i=0; i<n; ++i)
{
cin >> a[i];
mp[ a[i] ] = i;
}
// 只回來 n-1 個,少了哪一個
for(i=0; i<n-1; ++i)
{
cin >> k;
j = mp[ k ] //直接傳回原序號
b[j]=1;
}
for(i=0; i<n; ++i)
{
if( b[i] == 0 ) //印出未回的
{
cout << a[i] << endl;
break;
}
}
}
system("pause");
return 0;
}