我用scanf print输入输出的时候AC,但是改成快读就会TLE,为什么
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll read ()
{
register ll x = 0,f = 1;register char ch;
ch = getchar();
while(ch > '9' || ch < '0') if(ch == '-') f = -f,ch = getchar();
while(ch <= '9' && ch >= '0') x = x * 10 + ch - 48,ch = getchar();
return x * f;
}
void write (ll x)
{
if (x < 0) putchar('-'),x = -x;
if (x > 9) write(x / 10),putchar(x % 10 + '0');
else putchar(x + '0');
return;
}
queue <ll> dictionary;
ll book[10001];
int main()
{
ll m = read(),n = read();
ll sum = 0,c = 0;
for (ll i = 1; i <= n; i ++)
{
ll x = read();
if (!book[x])
{
sum ++;
if (c == m)
{
book[dictionary.front()] = 0;
dictionary.pop();
}
dictionary.push(x);
book[x] = 1;
if (c < m) c ++;
}
}
write(sum);
return 0;
}
我用快读写的代码