求调
查看原帖
求调
961881
enyyyyyyy楼主2024/8/19 20:04

rt

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
typedef void vd;
typedef bool bl;
//#ifdef LOCAL
//#include"dbg.h"
//#else
//#define dbg(...) (__VA_ARGS__)
//#endif
//namespace Fread {
//  const int SIZE=1<<16;
//  char buf[SIZE],*S,*T;
//  inline char getchar() {
//      if(S==T) {
//          T=(S=buf)+fread(buf,1,SIZE,stdin);
//          if(S==T)return'\n';
//      }
//      return *S++;
//  }
//} namespace Fwrite {
//  const int SIZE=1<<16;
//  char buf[SIZE],*S=buf,*T=buf+SIZE;
//  inline void flush() {
//      fwrite(buf,1,S-buf,stdout);
//      S=buf;
//  } inline void putchar(char c) {
//      *S++=c;
//      if(S==T)flush();
//  } struct NTR {
//      ~NTR() {
//          flush();
//      }
//  } ztr;
//}
//#define getchar Fread::getchar
//#define putchar Fwrite::putchar
//#define Setprecision 10
//#define between ' '
//template<typename T>struct is_char {
//  static constexpr bool value=(std::is_same<T,char>::value||std::is_same<T,signed char>::value||std::is_same<T,unsigned char>::value);
//};
//template<typename T>struct is_integral_ex {
//  static constexpr bool value=(std::is_integral<T>::value||std::is_same<T,__int128>::value)&&!is_char<T>::value;
//};
//template<typename T>struct is_floating_point_ex {
//  static constexpr bool value=std::is_floating_point<T>::value||std::is_same<T,__float128>::value;
//};
//namespace Fastio {
//  struct Reader {
//      template<typename T>typename std::enable_if_t<std::is_class<T>::value,Reader&>operator>>(T&x) {
//          for(auto &y:x)*this>>y;
//          return *this;
//      } template<typename T>typename std::enable_if_t<is_integral_ex<T>::value,Reader&>operator>>(T&x) {
//          char c=getchar();
//          short f=1;
//          while(c<'0'||c>'9') {
//              if(c=='-')f*=-1;
//              c=getchar();
//          }
//          x=0;
//          while(c>='0'&&c<='9') {
//              x=(x<<1)+(x<<3)+(c^48);
//              c=getchar();
//          }
//          x*=f;
//          return *this;
//      } template<typename T>typename std::enable_if_t<is_floating_point_ex<T>::value,Reader&>operator>>(T&x) {
//          char c=getchar();
//          short f=1,s=0;
//          x=0;
//          T t=0;
//          while((c<'0'||c>'9')&&c!='.') {
//              if(c=='-')f*=-1;
//              c=getchar();
//          }
//          while(c>='0'&&c<='9'&&c!='.')x=x*10+(c^48),c=getchar();
//          if(c=='.')c=getchar();
//          else return x*=f,*this;
//          while(c>='0'&&c<='9')t=t*10+(c^48),s++,c=getchar();
//          while(s--)t/=10.0;
//          x=(x+t)*f;
//          return*this;
//      } template<typename T>typename std::enable_if_t<is_char<T>::value,Reader&>operator>>(T&c) {
//          c=getchar();
//          while(c=='\n'||c==' '||c=='\r')c=getchar();
//          return *this;
//      } Reader&operator>>(char*str) {
//          int len=0;
//          char c=getchar();
//          while(c=='\n'||c==' '||c=='\r')c=getchar();
//          while(c!='\n'&&c!=' '&&c!='\r')str[len++]=c,c=getchar();
//          str[len]='\0';
//          return*this;
//      } Reader&operator>>(std::string&str) {
//          char c=getchar();
//          while(c=='\n'||c==' '||c=='\r')c=getchar();
//          while(c!='\n'&&c!=' '&&c!='\r')str.push_back(c),c=getchar();
//          return*this;
//      } Reader() {}
//  } cin;
//  const char endl='\n';
//  struct Writer {
//      typedef __int128 mxdouble;
//      template<typename T>typename std::enable_if_t<std::is_class<T>::value,Writer&>operator<<(T x) {
//          for(auto &y:x)*this<<y<<between;
//          *this<<'\n';
//          return *this;
//      } template<typename T>typename std::enable_if_t<is_integral_ex<T>::value,Writer&>operator<<(T x) {
//          if(x==0)return putchar('0'),*this;
//          if(x<0)putchar('-'),x=-x;
//          static int sta[45];
//          int top=0;
//          while(x)sta[++top]=x%10,x/=10;
//          while(top)putchar(sta[top]+'0'),--top;
//          return*this;
//      } template<typename T>typename std::enable_if_t<is_floating_point_ex<T>::value,Writer&>operator<<(T x) {
//          if(x<0)putchar('-'),x=-x;
//          mxdouble _=x;
//          x-=(T)_;
//          static int sta[45];
//          int top=0;
//          while(_)sta[++top]=_%10,_/=10;
//          if(!top)putchar('0');
//          while(top)putchar(sta[top]+'0'),--top;
//          putchar('.');
//          for(int i=0; i<Setprecision; i++)x*=10;
//          _=x;
//          while(_)sta[++top]=_%10,_/=10;
//          for(int i=0; i<Setprecision-top; i++)putchar('0');
//          while(top)putchar(sta[top]+'0'),--top;
//          return*this;
//      } template<typename T>typename std::enable_if_t<is_char<T>::value,Writer&>operator<<(T c) {
//          putchar(c);
//          return*this;
//      } Writer&operator<<(char*str) {
//          int cur=0;
//          while(str[cur])putchar(str[cur++]);
//          return *this;
//      } Writer&operator<<(const char*str) {
//          int cur=0;
//          while(str[cur])putchar(str[cur++]);
//          return*this;
//      } Writer&operator<<(std::string str) {
//          int st=0,ed=str.size();
//          while(st<ed)putchar(str[st++]);
//          return*this;
//      } Writer() {}
//  } cout;
//}
//#define cin Fastio::cin
//#define cout Fastio::cout
//#define endl Fastio::endl
//#define double long double
//constexpr int inf=1e8,zro=0;
//constexpr double zrod=0,eps=1e-18;
//struct frac {
//  int fz,fm;
//  frac(int fz_=0,int fm_=1) {
//      fz=fz_,fm=fm_;
//  }
//  frac operator+(const frac &b)const {
//      return frac(fz*b.fm+fm*b.fz,fm*b.fm);
//  }
//  frac operator-(const frac &b)const {
//      return frac(fz*b.fm-fm*b.fz,fm*b.fm);
//  }
//  frac&reduce() {
//      int _=__gcd(fz,fm);
//      fz/=_,fm/=_;
//      return *this;
//  }
//  void print() {
//      /*cerr<<fz<<'/'<<fm<<endl;*/
//  }
//};
inline ll read() {
    ll s = 0, w = 1;
    char ch = getchar();
    while (ch < '0' || ch > '9') {
        if (ch == '-')
            w = -1;
        ch = getchar();
    }
    while (ch >= '0' && ch <= '9') s = s * 10 + ch - '0', ch = getchar();
    return s * w;
}
inline vd print(ll x) {
    if (x < 0) {
    	
        putchar('-');
        x = -x;
    }
    if (x >= 10)
        print(x / 10);
    putchar(x % 10 + '0');
    return;
}
ll n,m,k,t,a[105],x[105],y[105];
struct node{
	ll s,e[55];
}q[105][105];
int main(){
	n=read(),m=read(),k=read(),t=read();
	for(ll i=1;i<=t;i++){
		a[i]=read(),x[i]=read(),y[i]=read();
		if(q[x[i]][y[i]].s==k){
			ll minn=1145141919810,mini;
			for(ll j=q[x[i]][y[i]].s;j>=1;j--)
				if(q[x[i]][y[i]].e[j]<minn) 
					minn=q[x[i]][y[i]].e[j],mini=j;
			print(q[x[i]][y[i]].e[mini]),printf(" "),print(k-mini),printf("\n");
			for(ll j=mini+1;j<=q[x[i]][y[i]].s;j++) q[x[i]][y[i]].e[j-1]=q[x[i]][y[i]].e[j];
			q[x[i]][y[i]].e[q[x[i]][y[i]].s]=a[i];
		}
		else{
			printf("-1\n");q[x[i]][y[i]].s++;
			q[x[i]][y[i]].e[q[x[i]][y[i]].s]=a[i];
			
		}
	}
	return 0;
}
/*

*/
2024/8/19 20:04
加载中...