Advertisement
Guest User

call

a guest
Apr 5th, 2020
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.55 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct node {
  5.   int tstart;
  6.   char *num;
  7.   struct node *next;
  8. };
  9. struct node *start = NULL;
  10.  
  11. void del(int tim) { //usuwam z przodu, print z wymogow zadania
  12.   struct node *t;
  13.   int tstart;
  14.   char *num=malloc(60*sizeof(char));
  15.   num = start->num;
  16.   tstart=start->tstart;
  17.   t = start->next;
  18.  
  19.   free(start);
  20.   start = t;
  21.  
  22.   printf("%s %d\n", num, tim-tstart);
  23. }
  24.  
  25. void insert(int tstart, char *num) { //dodaje na koncu
  26.   struct node *t, *temp;
  27.  
  28.   t = (struct node*)malloc(sizeof(struct node));
  29.   t->tstart = tstart;
  30.   t->num=num;
  31.  
  32.   if (start == NULL) {
  33.     start = t;
  34.     start->next = NULL;
  35.     return;
  36.   }
  37.  
  38.   temp = start;
  39.   while (temp->next != NULL)
  40.     temp = temp->next;
  41.  
  42.   temp->next = t;
  43.   t->next = NULL;
  44. }
  45.  
  46. void aresolve(char *input)
  47. {
  48.     int tstart;
  49.     char *num=malloc(60*sizeof(char));
  50.     sscanf(input,"a %d %s", &tstart,num);
  51.     insert(tstart,num); //dodaje node z wartosciami co trzeba
  52. }
  53.  
  54. void rresolve(char *input)
  55. {
  56.     int tim=0;
  57.     sscanf(input,"r %d",&tim);
  58.     del(tim);   //wyrzucam element na poczatku kolejki, printuje dane
  59. }
  60. void dowork(char *input) //wywoluje do kazdego inputa
  61. {
  62.     if(input[0]=='a')
  63.     {
  64.         aresolve(input);
  65.     }
  66.     else if(input[0]=='r')
  67.     {
  68.         rresolve(input);
  69.     }
  70.     return;
  71. }
  72.  
  73. int main()
  74. {
  75.     int n;
  76.     scanf("%d",&n);
  77.     for(int i=0; i<n+1; i++)
  78.     {
  79.         char *input=malloc(60*sizeof(char));
  80.         fgets(input,59,stdin);
  81.         dowork(input);
  82.         free(input);
  83.     }
  84.     return 0;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement