#include #include #include // *********************** extern int getchar_unlocked(void); extern int putchar_unlocked(int); #define DEBUGd // --------------------------- #define NOP do{}while(0) #define gc(d) (d)=getchar_unlocked() #define pc(d) putchar_unlocked(d) #define mygc(c) (c)=getchar() #define PRINCR pc('\n') #ifdef DEBUG #include #define TRACE(...) do{fprintf(stderr,__VA_ARGS__);}while(0) #define TRACECR do{fprintf(stderr,"\n");}while(0) static clock_t startclock; void DEBUGSTART(void){TRACE("--DEBUG MODE --\n");startclock=clock();} void DEBUGEND(void){startclock=clock()-startclock;TRACE("--finish --\ntime is %.3fms\n",startclock/1000.);} #else #define TRACE(...) NOP #define TRACECR NOP void DEBUGSTART(void){return;} void DEBUGEND(void){return;} #endif // --------------------------- #define lolong long long static char *GETWORD(char* str) {char c;char *cp;cp=&str[0];gc(c);while(c!=EOF){if((c==' ')||(c=='\n'))break;*cp++=c;gc(c);}*cp='\0';return &str[0];} #define str_len(a) mystr_len_lim(a,9999) static int mystr_len_lim(char *str,int lim){int i=0;do{if(str[i]=='\0')break;i++;}while(ib){return a;}return b;} static lolong GETLINELL(void) {char s[44];GETLINE(s);return atoll(s);} static int min(int a,int b){if(a0) { b[i++] = n % 10 + '0'; n = n / 10; } while (i--) pc(b[i]); } pc('\n'); } // ********************* #define MAPSIZE (99999*3) char m[MAPSIZE]; long mx[MAPSIZE]; long midx = 0; long msiz = 0; int N; // ********************* long getmap(long num ) { for(midx=0; midx < msiz ;midx++) { if( mx[midx] == num ) break; } if(midx >= msiz ) return 0; return m[midx]; } void putmap(long num, int c ) { //getmap(num); m[midx] = c; mx[midx] = num; if(msiz == midx) msiz++; } // ********************* int main( void ) { long ans = 0; //memset( m , 0 , MAPSIZE ); N = GETLINEINT(); DEBUGSTART(); REP(i,N) { long cn; long v = GETWORDLONG(); cn = getmap( v ); TRACE("[%ld](%d)",v,cn); if(cn==1) { putmap(v,2); ans--; } else if(cn==0) { putmap(v,1); ans++; } TRACE("ans %d\n",ans); } DEBUGEND(); outl( ans ); }