Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define MAX 1000
- struct queue{
- int cs;
- int head;
- int tail;
- int items[MAX];
- };
- int is_empty(struct queue *queue){
- if(queue->cs == 0)return 1;
- else return 0;
- }
- struct queue *create_queue(){
- struct queue *new;
- new = (struct queue*) malloc(sizeof(struct queue));
- new->cs = 0;
- new->head = 0;
- new->tail = MAX - 1;
- return new;
- }
- void enqueue(struct queue *queue, int item){
- if(queue->cs>=MAX){
- printf("Queue overflow");
- }else{
- queue->tail = (queue->tail + 1) % MAX;
- queue->items[queue->tail] = item;
- queue->cs++;
- }
- }
- struct queue *or(struct queue *queue){
- int i, j, aux;
- int *p, *q, *r;
- for(i=0; i<queue->cs; i++){
- for(j=i+1; j<queue->cs; j++){
- if(queue->items[i]<queue->items[j]){
- /**q = queue->items[i];
- p = &queue->items[i];
- *p = queue->items[j];
- r = &queue->items[j];
- *r = *q;*/
- aux = queue->items[i];
- queue->items[i]=queue->items[j];
- queue->items[j]=aux;
- }
- }
- }
- return queue;
- }
- int main(){
- int i, j;
- int n, m, x, qnt, aux;
- struct queue *fil, *fil2;
- scanf("%d", &n);
- fil = create_queue();
- fil2 = create_queue();
- for(i=0; i<n; i++){
- scanf("%d", &m);
- for(j=0; j<m; j++){
- scanf("%d", &x);
- enqueue(fil, x);
- enqueue(fil2, x);
- }
- qnt = fil->cs;
- aux = fil->cs;
- fil = or(fil);
- for(j=0; j<fil->cs; j++){
- if(fil->items[j]!=fil2->items[j])qnt--;
- }
- printf("%d\n", qnt);
- fil->cs = 0;
- fil->tail = MAX - 1;
- fil2->cs = 0;
- fil2->tail = MAX - 1;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement